请注意,我搜索了SO以查找此错误,虽然有许多类似的问题,但我没有找到解决此特定问题的问题。
我正在研究一个如下所示的Python模块:
/com
/company
/foo
/bar
我正在编辑bar
目录中的源文件,并尝试导入foo
目录中的类。我尝试过以下方式导入文件:
from com.company.foo import *
from company.foo import *
from foo import *
import com.company.foo
import company.foo
import foo
其中每一个都会产生类似的错误:
ImportError: no module named com.company.foo
我在每个目录中都有__init__.py
个文件,包括包含com
的目录。
不确定我在这里做错了什么 - 先谢谢你的帮助!
答案 0 :(得分:5)
包含/com
的目录需要位于Python路径上。有很多方法可以做到这一点:
在命令行中,每次:
user@host:~$ PYTHONPATH=/path/to/whatever python some_file.py
在您的shell配置中.bashrc
,.bash_profile
等):
export PYTHONPATH=/path/to/whatever
在Python代码中(我不建议这样做,作为一般做法):
import sys
sys.path.append('/path/to/whatever')
正如一些评论者所说,通常这是由容器(mod_wsgi
等)或你的bootstrap / main脚本(可能做类似选项#3,或者可能在环境设置如选项#1或#2)
答案 1 :(得分:0)
想想吧 来自.foo import * 至少在2.7及以上