在使用pytest 時遇到錯誤“ImportError: No module named...”,重要的是要考慮...”,重要的是要考慮PATH 配置的潛在問題,尤其是在Linux 或Windows 系統上。在這種特定情況下,使用者在Mac 上使用easy_install 安裝了pytest,並在測試具有以下檔案結構的專案時遇到了問題:
repo/ |--app.py |--settings.py |--models.py |--tests/ |--test_app.py
要解決此問題,建議使用下列方法:
Pytest 引入了一個核心插件,可以透過 'pythonpath' 配置設定啟用 sys.path 修改。這個簡化的解決方案涉及將以下行添加到專案的pyproject.toml 或pytest.ini 檔案中:
# pyproject.toml [tool.pytest.ini_options] pythonpath = [ "." ] # pytest.ini [pytest] pythonpath = .
透過指定相對於根目錄的路徑條目,您可以有效地將該目錄添加到sys.path,解決導入問題。
對於舊版的pytest,一種侵入性較小的方法是在專案的根目錄中建立一個名為「conftest.py」的空檔案:
$ touch repo/conftest.py
這樣做,pytest 會自動將'conftest.py'的父目錄加入到sys.path,實作成功導入。
Pytest 在測試收集期間搜尋「conftest」模組以收集自訂掛鉤和固定裝置。為了匯入這些自訂對象,pytest 將 'conftest.py' 的父目錄新增到 sys.path。
建議的解決方法pytest 中的匯入問題取決於您使用的版本。對於 pytest >= 7,首選「pythonpath」配置,而對於 pytest
以上是如何修復 Pytest 中的'ImportError:沒有名為...的模組”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!