【发布时间】:2017-11-28 06:47:12
【问题描述】:
我有以下项目文件(使用 Python3):
pyproj
├── __init__.py
├── main.py
├── module1.py
├── module2.py
└── tests
├── __init__.py
└── test_module.py
module1 不包含导入。
module2 从模块 1 导入如下:
import module1
main.py 从 module1 和 module2 导入如下:
from module1 import *
from module2 import *
我希望 tests/test_module 能够从模块 2 和模块 1 导入,并且能够使用 pyproj 目录中的 pytest 运行它。但是尝试使用以下方式导入 module2:
from ..module2 import *
从pyproj 目录或tests 目录运行pytest 时会导致以下错误:
tests/test_module.py:1: in <module>
from ..module2 import *
module2.py:1: in <module>
import module1
E ImportError: No module named 'module1'
问题似乎出在 module1 正在导入 module2 时。但是python3 main.py 运行正常。
我尝试了许多更改,但似乎没有一个可以让main.py 和测试都正常工作。构建项目并适当导入文件以执行此操作的正确方法是什么?
【问题讨论】:
标签: python python-3.x testing pytest