使用IDE时可以正常导入文件夹形式的包,但是shell脚本执行时无法找到文件夹形式的包,仅能识别环境里的包。例如,工程结构为:
train.py
mmseg # 文件夹包
py文件中包含代码
import mmseg
使用shell脚本执行:
python train.py ***
会报错:
ModuleNotFoundError: No module named 'mmseg'
这是因为:python找包的路径是:python安装路径下的lib包和PYTHONPATH下的包,而当前目录不在寻找的范围内。
因此在执行shell前,先添加当前路径到PATHONPATH中
export PYTHONPATH=.:$PYTHONPATH
谢谢:python找包的路径(找不到自定义包的问题解决) - 每天1990 - 博客园 (cnblogs.com)
但文中给出的方法对shell不适用。