Python无法导入我的包

时间:2015-01-13 14:36:54

标签: python

我有以下目录结构:

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'

我做错了什么?

1 个答案:

答案 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文件夹视为查找导入模块的默认位置,无论文件从何处执行