【问题标题】:Local import failing with Python 2.7 only仅 Python 2.7 的本地导入失败
【发布时间】:2021-04-29 12:55:39
【问题描述】:

我正在运行一个带有 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 约定的文件名有问题吗?

【问题讨论】:

  • 您在指定文件夹中有名为__init__.py 的文件吗?
  • 解决了!谢谢!!
  • 不错!所以我将其解释为答案,您可以接受。

标签: python python-2.7 import python-2.x importerror


【解决方案1】:

为了在python 3.2及之前导入python模块,应该有一个名为__init__.py的文件,负责将包作为python包引入。从 python 3.3+ 开始,它被隐式执行。

基于this documentation,我们有两种类型的包:常规包(包含__init__.py)和命名空间包(不包含)。在 python 3.2 和 ealier 中需要添加这个文件来导入文件。

您可以查看this answer 以了解有关此文件的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多