[英]Pytest "No module named..." issue
因此,当我运行 pytest 与直接调用测试模块时,我遇到了问题。 Pytest 实际上运行良好,但我在尝试直接调用我正在测试的 python 文件时遇到了问题。 这是基本的文件夹布局:
generate
├── generate
│ ├── __init__.py
│ ├── write_sql.py
│ └── utils.py
└── tests
└── test_write_sql.py
在test_write_sql.py
和write_sql.py
,我使用generate
模块导入东西,如下所示:
from generate import utils
从根generate
文件夹运行pytest
工作正常。 但是当我尝试直接从根generate
文件夹调用write_sql.py
时,我遇到了以下错误:
root@637572f508b9:~/generate# python3 generate/write_sql.py
Traceback (most recent call last):
File "/root/generate/generate/write_sql.py", line 5, in <module>
from generate import utils
ModuleNotFoundError: No module named 'generate'
我的印象是,从generate
根文件夹运行 Python 应该将generate
子文件夹作为模块添加到系统路径(由于包含__init__.py
文件)。 我知道如果我将导入更改为在write_sql.py
中import utils
,那么直接调用write_sql.py
可以了,但是 pytest 会遇到导入错误。
关于我应该使用什么导入方案来让 pytest 和直接调用工作的任何想法?
我在导入时遇到了同样的问题,我修复它的方式是设置所有导入以便代码运行。 为了运行测试而不是仅仅调用pytest
(这会从它们所在的文件夹运行所有测试,因此会出现导入错误),应该像这样从根目录调用它:
python3 -m pytest
或者
python -m pytest
这样它会从根目录运行所有测试,并且它不应该给出导入错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.