linux环境下
/opt/python3/bin/python3 demo.py 运行python文件 导包from xxx 报错 ModuleNotFoundError: No module named ‘xxx’
方式一 在demo.py中加代码
找不到谁 就在demo.py内
import sys
import os
sys.path.append(“谁的爹目录”)
并且 每个python目录下都要有__init__.py文件 内容可以是空的
方式二 在python3的安装包目录中加环境变量文件
在/opt/python3/lib/python3.6/site-packages下
vi 自定义名.pth
内容
/opt/wsy/es_new # 就是项目的绝对目录
并且 每个python目录下都要有__init__.py文件 内容可以是空的 python才会认为你这个目录是个包 而不是单纯的目录
在demo.py中
增加
import sys
import os
sys.path.append( os.path.split(os.path.realpath(file))[0]+"/…/")
并且 每个python目录下都要有__init__.py文件 内容可以是空的 python才会认为你这个目录是个包 而不是单纯的目录
效果是 demo.py能找到爷爷目录 就能用爷爷目录中你原来导不了包的xxx了 ; 你导包时报错 找不到谁 就把谁的爹目录加进环境变量sys.path.append(“找不到包的爹目录”)
0.找到这个python3的安装目录
$ whereis python3
$ which python3
如 我的是 /opt/python3/bin/python3
1.进入site-packages中
$ cd /opt/python3/lib/python3.6/site-packages
2.新增文件xxx.pth 声明项目目录
$ vi wsyworkpath.pth
内容如下 就是你的项目根目录
/opt/wsy/es_new
$ /opt/python3/bin/python3
$ import sys
$ sys.path # 结果最后一个就是你添加的项目根目录
用 /opt/python3这个python 去执行demo.py文件 就没有导包找不到路径的问题了
$ /opt/python3/bin/python3 demo.py