尝试在Python中导入自定义模块时的ImportError

ink*_*dmn 8 python module

请注意,我搜索了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.

不知道我在这里做错了什么 - 在此先感谢您的帮助!

dcr*_*sta 6

包含/com需要在Python路径上的目录.有很多方法可以做到这一点:

  1. 在命令行,每次:

    user@host:~$ PYTHONPATH=/path/to/whatever python some_file.py
    ,.bashrc,等): .bash_profile

    export PYTHONPATH=/path/to/whatever

正如一些评论者所说,通常这是由容器(

import sys
sys.path.append('/path/to/whatever')
等)或你的bootstrap/main脚本(可能做类似选项#3,或者可能在选项#1中设置的环境中调用)处理的.或#2)