本地导入失败,仅 Python 2.7
Local import failing with Python 2.7 only
我是 运行 一个带有 tox 的测试套件,我的一个本地导入在 Python 3.7 中表现良好,但在 Python 2.7 中失败。
我收到错误:
ImportError while importing test module /home/myname/tests/myfolder/test_triad_2020_orgs.py
Traceback:
tests/myfolder/test_triad_2020_orgs.py:5: in <module>
from [testssibbling].myfolder.triad.triad_2020_orgs import Orgs
Import Error: No module named triad.triad_2020_orgs
关于为什么会这样有什么想法吗?该文件肯定存在。 2.7约定的文件名有问题吗?
为了在 python 3.2 和更早版本中导入 python 模块,应该有一个名为 __init__.py
的文件,它负责将包作为 python 引入包裹。从 python 3.3+ 开始隐式执行。
基于this documentation我们有两种类型的包:常规包(包含__init__.py
)和命名空间包(不包含)。您需要添加此文件才能在 python 3.2 及更早版本中导入该文件。
您可以查看 this answer 以找到有关此文件的更多信息。
我是 运行 一个带有 tox 的测试套件,我的一个本地导入在 Python 3.7 中表现良好,但在 Python 2.7 中失败。
我收到错误:
ImportError while importing test module /home/myname/tests/myfolder/test_triad_2020_orgs.py
Traceback:
tests/myfolder/test_triad_2020_orgs.py:5: in <module>
from [testssibbling].myfolder.triad.triad_2020_orgs import Orgs
Import Error: No module named triad.triad_2020_orgs
关于为什么会这样有什么想法吗?该文件肯定存在。 2.7约定的文件名有问题吗?
为了在 python 3.2 和更早版本中导入 python 模块,应该有一个名为 __init__.py
的文件,它负责将包作为 python 引入包裹。从 python 3.3+ 开始隐式执行。
基于this documentation我们有两种类型的包:常规包(包含__init__.py
)和命名空间包(不包含)。您需要添加此文件才能在 python 3.2 及更早版本中导入该文件。
您可以查看 this answer 以找到有关此文件的更多信息。