python自定义包在linux上导入时找不到
win上的pycharm上没问题弄到Linux 系统上直接运行就提示 cannot import name 'xxx'
问题说明
pycharm 会自动处理包路径问题,在linux上直接运行需要自行处理
调试时的直观感受是问题原因有两个(可能还有其他情况)
常见问题:
- sys.path 时依赖的包路径没有引入(通过
sys.path.append('你的项目路径')
) - 没有将你引入 的模版识别为一个可以导入的包 (添加
__init.py__
)
我的问题:
我的问题是sys.path 是有引入的也识别为包了,但是项目的路径有一部分跟python解释器的路径重合了,比如 项目路径/usr/local/xxx
跟python解释器路径/usr/local/python3.9/xxx
其中/usr/local
部份重叠, 推测是python解释器执行时优先去了 /usr/local/python3.9/site-package
即python解释器本身自带的包路径下去找,而直接忽略了我添加的/usr/local/xxx
项目路径,所以找不到包
解决方式
其他常见问题很多博主都说过就不赘述了,我的问题简单的解决方法就是将项目路径从 /usr/local/xxx
移动到了 /opt/python_project/xxx
,完美解决