我有以下目录结构:
myapp
├── a
│ ├── amodule.py
│ └── __init__.py
├── b
│ ├── bmodule.py
│ ├── __init__.py
└── __init__.py
a/amodule.py
我有这个片段在b/bmodule.py
from myapp.b import bmodule
b.myfunc()
但是当我运行python a/amodule.py
时,我收到此错误:
File "a/amodule.py", line 1, in <module>
from myapp.b import bmodule
ImportError: No module named 'myapp'
我做错了什么?
答案 0 :(得分:1)
您需要将项目root置于python路径
您可以设置PYTHONPATH环境变量
或者您可以在导入
之前更改sys.path
或者您可以使用像pycharm这样的IDE来为您做这类事情
(虽然它可能是from b import blah
)
还有其他方法可以解决此问题
注意循环进口......
(在python 3中你也可以做相对导入......虽然我不是这个功能的忠实粉丝)
from ..b import blah
允许的最佳方式
from myapp.b import whatever
将编辑您的.bashrc
文件以始终将您的父路径添加到PYTHONPATH
export PYTHONPATH=$PYTHONPATH;/home/lee/Code
现在每次登录系统时,python都会将您的Code
文件夹视为查找导入模块的默认位置,无论文件从何处执行