请注意,我搜索了SO以查找此错误,虽然有许多类似的问题,但我没有找到解决此特定问题的问题.
我正在研究一个如下所示的Python模块:
/com
/company
/foo
/bar
Run Code Online (Sandbox Code Playgroud)
我正在编辑bar目录中的源文件,并尝试导入foo目录中的类.我尝试通过以下方式导入文件:
from com.company.foo import *
from company.foo import *
from foo import *
import com.company.foo
import company.foo
import foo
Run Code Online (Sandbox Code Playgroud)
其中每个都会产生类似的错误:
ImportError: no module named com.company.foo
Run Code Online (Sandbox Code Playgroud)
我__init__.py在每个目录中都有文件,包括包含的目录com.
不知道我在这里做错了什么 - 在此先感谢您的帮助!
包含/com需要在Python路径上的目录.有很多方法可以做到这一点:
在命令行,每次:
,user@host:~$ PYTHONPATH=/path/to/whatever python some_file.py
.bashrc,等):
.bash_profile
export PYTHONPATH=/path/to/whatever
正如一些评论者所说,通常这是由容器(等)或你的bootstrap/main脚本(可能做类似选项#3,或者可能在选项#1中设置的环境中调用)处理的.或#2)import sys
sys.path.append('/path/to/whatever')