【Python】import自己的模块报错

在实际使用python时,我们会将一些公共的东西写到一些基础模块中,供其他模块去调用,这时会去import自定义的一些基础模块,然后来导入。
自己写好了脚本,然后导入,导入的情况分为以下情况:
1. 运行的模块与需要调用自定义基础模块在同一文件夹下
2. 自定义模块与所需要调用自定义模块的文件不在同一文件夹下

一、同一文件夹下
这时的调用就较为简单了,直接导入即可

from deal_excel import copy_sheetWrite, row_commonWrite
from deal_time import minus_date

1.1但是这个时候在PyCharm中显示的是报错,但是运行程序是不会报错的

为了让在PyCharm中不报错,可以将包/文件夹设为 sources Root

现在就不报错了

1.2 在cmd命令中执行也是成功的

如果在模块前面加上包名(下面有个__init__.py)或者文件夹名

from msydwork.deal_excel import copy_sheetWrite, row_commonWrite
from msydwork.deal_time import minus_date

PyCharm中显示不报错,运行程序成功

但是在cmd命令中运行却是失败的

所以对于处于同一文件夹下的情况:直接导入模块;为了PyCharm中不报错,将包/文件夹设为sources Root

二、处于不同文件夹下面

在PyCharm中是不会报错而且执行成功,是由于将deal_excel、deal_time所在包设为sources Root

这时在cmd命令中是执行失败的

在PyCharm中是不会报错而且执行成功另外一种方法:导包时全路径(可以不设sources Root

这时在cmd命令中也是报错的

为了让代码在cmd命令中执行成功,需要将自定义基础模块的文件夹/包添加到Python的库路径中。

三、找到本地库的路径,然后将文件拷进去即可

拷贝到\Lib\site-packages中

PyCharm中是不会报错而且执行成功

cmd命令中执行成功

四、手动给python添加搜索路径

在python安装目录的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库绝对路径

这个时候PyCharm中是会报错的,但是执行是成功的

cmd命令是执行成功的。

还有一种方法导入完整路径:

将根目录设为搜索路径

这时候不管在PyCharm还是cmd执行都是成功的

所以对于处于不同一文件夹下的情况:先手动给python添加搜索路径(根目录),然后直接导入模块全路径;

在这里说一句Python的包搜索路径:

Python会在以下路径中搜索它想要寻找的模块:

1. 程序所在的文件夹

2. 标准库的安装路径

3. 操作系统环境变量PYTHONPATH所包含的路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter生成自动化和性能多维度测试报告(性能指标和监听器图表)

jmeter在命令行下还可以生成多维度的测试报告,里面包含了常用的性能指标和监听器图表。 一、环境要求 1、jmeter3.0版本之后开始支持动态生成测试报表 2、jdk版本1.7以上 3、需要jmx脚本文件 二、生成jtl文件 1、进入bin目录下cd jmeter -n -t C:\jmeter\apach…

【Python】pyinstaller模块打包的exe在windows环境无法使用问题汇总

问题一:解决pyinstaller打包发布后的exe文件打开控制台闪退的问题 pyinstaller打包发布后的exe文件在自己电脑能够正常使用,但是给到别人的电脑时,打开exe文件却发生闪退,看不到具体的原因。 1、定位问题: 1.1.切换到…

Appium+PythonUI自动化测试之uiautomatorviewer和Inspector元素定位

一、uiautomatorviewer uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。 1、启动uiautomatorviewer.bat,打开sdk安装…

服务器购买和远程连接

1. 申请阿里云服务器 *打开阿里云ECS购买页面,并用淘宝账号登陆,可以按需购买。基础配置的话包月大约60元/月 在部署阶段也可以选择按使用流量付费,只需要32元/月,后续部署成功后进行配置升级 操作系统选择Ubuntu的最新版本 …

【Linux】与用户管理相关的命令总结

这篇文章主要总结一下linux中用户相关的命令: 一、查询用户信息相关: 二、用户创建、删除相关: 三、用户密码相关 四、用户组相关 一、查询用户信息相关: 1. cat /etc/passwd 可以查看所有用户的列表 具体内容介绍 :分隔成7个…

Xshell连接阿里云服务器ECS

1. 参考资料: 1). 《阿里云服务器怎么用?阿里云服务器使用教程》 链接:http://www.cr173.com/html/50758_1.html 2). eagle-zhang的CSDN博客《Xshell连接不上阿里云服务 链接:http://blog.csdn.net/zhangxing52077/…

【数据库】Windows安装redis全流程

Redis:REmote DIctionary Server(远程字典服务),是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。 是完全开源免费的,用C语言编写的,遵守BSD协议,高性…

Jmeter跨线程组传递参数

jmeter的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B和线程组C中被调用的。 但是有时为了方便管理,我们可能是把各个接口单独存放在不同的线程组中。拿token来说,虽然每…

【工具】Notepad++的一些常用配置

Notepad是d Winows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。 本文主要介绍了Notepad的一些常用配置。 一、设置默认打开txt、java文件 菜单:设置—>首选项—>文件关联 设置后&a…

【工具】Xshell安装注册以及简单属性配置

Xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。 Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以在Windows界面下用来访问远端不同系统下…

使用Xftp5连接云服务器

软件详细介绍见:https://baike.baidu.com/item/Xftp/249096?fraladdin 软件下载链接见:http://www.netsarang.com/products/xfp_overview.html 安装完成打开软件出现如下界面,成功: 二、连接使用Xftp 1、打开Xftpl软件&#xff…

用SQL语句查看数据库数据量的大小

1、进入MQSQL命令行界面 2、输入密码 3、输入命令 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(data_length/1024/1024),2),MB) as data from …

【Linux】free命令查询服务器内存信息

Linux的free命令对于很多的Linux运维来说,应该是非常熟悉的了。但作为一个经常使用linux系统的小白来说,我们也需要了解一下free命令。 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 free命令的返回结果…

【Linux】linux服务器下的帮助命令总结

在Linux环境中,如果遇到困难,可以使用帮助命令来取得帮助。 常见的帮助命令有:man 命令、help 命令、info 命令。 在介绍这几个命令前,需要先介绍一下内建命令与外部命令,因为有一些查看帮助的工具在内建命令与外建命令…

服务器Ubuntu Import Error:cannot import name main

利用Xftp5进入到usr/bin 目录下,找到pip3. 把它拷贝到桌面上,用pycharm打开,进行如下修改: 把下面的三行 from pip import main if __name__ __main__:sys.exit(main())替换为: from pip import __main__ if __name…

【Linux】linux服务器下包管理器

通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。 3) dpk…

阿里云服务器部署django项目

ubuntu自带了2.7。想要装3.5并设置为默认python版本。 安装python3.5 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 python --version sudo apt-get install python3-pip #装pip3设置python3为默认版本 直接执行这两个…

【Linux】ls命令查看linux目录下的内容

ls 命令是Linux下最常用的命令之一,用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 本文将介绍其基本的用法和一些典型的用例 Usage: ls [OPTION]... [FILE]... 不输入参数(默认将文件名或目录名称开头为"."的视为隐藏…

【Python】hashlib模块实现MD5加密

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), 用以…

计算机编码发展历史和编码方式

编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。 用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。 编码在电子计算机、电视、遥控和通讯等方面广泛使用。 解码&#x…