使用pytes时无法导入子模块

2024-10-02 02:37:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目的布局如下:

/src
   /mypckg
      __init__.py
      calibration.py
      _const.py
   /tests
      test_calibration.py
   conftest.py

在我的测试文件im正在导入我的calibration模块:

^{pr2}$

同时,mycalibration模块导入我的_const模块,其中包含my的所有常量:

import _const

我的__init__.py文件包含以下导入:

## __init__ file
from . import calibration
from . import _const

现在,当我从test文件夹运行pytest时,它会找到我的calibration模块,但是它给出了这个错误

...\mypckg\calibration.py:7: in <module>
    import _const
E   ModuleNotFoundError: No module named '_const'

我的calibration模块显然找不到_const模块,但是如果我从包目录中运行python calibration.py,它运行得非常好。问题是当我试图从测试文件中的calibration模块运行函数时。在

如果我按照以下方式将_const模块导入到我的calibration模块中,那么我的测试可以完美地工作:

from mypckg import _const
# or from . import _const

但是,如果我以这种方式导入它,当我运行python calibration.py时,会出现以下错误:

Traceback (most recent call last):
  File "calibration.py", line 8, in <module>
    from . import _const
ImportError: cannot import name '_const'

我试着用谷歌搜索我的问题,但是没有找到类似的东西,子模块不能从测试文件中加载。你知道为什么会有这种行为吗?怎么解决?在


Tags: 模块文件项目infrompytestimport

热门问题