簡體   English   中英

Pytest“沒有名為...的模塊”問題

[英]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.pywrite_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.pyimport utils ,那么直接調用write_sql.py可以了,但是 pytest 會遇到導入錯誤。

關於我應該使用什么導入方案來讓 pytest 和直接調用工作的任何想法?

我在導入時遇到了同樣的問題,我修復它的方式是設置所有導入以便代碼運行。 為了運行測試而不是僅僅調用pytest (這會從它們所在的文件夾運行所有測試,因此會出現導入錯誤),應該像這樣從根目錄調用它:

python3 -m pytest

或者

python -m pytest

這樣它會從根目錄運行所有測試,並且它不應該給出導入錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM