遇到该报错的时候,查找问题的思路
1、是否在需要导入的包中新建了 __init__.py
空文件
python中,每个py文件被称之为模块,每个具有init.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用。
2、该模块或包的目录是否在sys.path中
验证方式
import sys
print(sys.path)
如果不在,则将该模块或包加入到sys.path中。加入的方式有:
- 在调用文件中添加sys.path.append("模块文件目录");该种方法比较简单,但是如果不同的环境中,代码的路径不一样,就需要每次都更改,比较麻烦,代码的可移植性降低。
- 使用pth文件,在 site-packages 文件中创建 .pth文件,将模块的路径写进去,一行一个路径。不能在不同的python版本中共享。【推荐,本人经常用】 我的.pth的路径在 /opt/soft/python2.7/lib/python2.7/site-packages中,如果没有此文件,需要新建一个。
- 使用PYTHONPATH环境变量,在这个环境变量中输入相关的路径,不同的路径之间用英文的逗号分开,如果PYTHONPATH 变量还不存在,可以创建它!这里的路径会自动加入到sys.path中,永久存在于sys.path中而且可以在不同的python版本中共享,应该是一样较为方便的方法。
- 将自己做的py文件放到 site_packages 目录下。 【不推荐】
- 直接把模块文件拷贝到$python_dir/Lib目录下。 【不推荐】