[英]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.