首頁 > 後端開發 > Python教學 > 如何修復 Pytest 中的'ImportError:沒有名為...的模組”錯誤?

如何修復 Pytest 中的'ImportError:沒有名為...的模組”錯誤?

Susan Sarandon
發布: 2024-12-04 13:29:11
原創
831 人瀏覽過

How Do I Fix

解決ImportError: No Module Named Issue with Pytest

在使用pytest 時遇到錯誤“ImportError: No module named...”,重要的是要考慮...”,重要的是要考慮PATH 配置的潛在問題,尤其是在Linux 或Windows 系統上。在這種特定情況下,使用者在Mac 上使用easy_install 安裝了pytest,並在測試具有以下檔案結構的專案時遇到了問題:

repo/
   |--app.py
   |--settings.py
   |--models.py
   |--tests/
          |--test_app.py
登入後複製

要解決此問題,建議使用下列方法:

1。利用 'pythonpath' 設定 (Pytest >= 7)

Pytest 引入了一個核心插件,可以透過 'pythonpath' 配置設定啟用 sys.path 修改。這個簡化的解決方案涉及將以下行添加到專案的pyproject.toml 或pytest.ini 檔案中:

# pyproject.toml
[tool.pytest.ini_options]
pythonpath = [
  "."
]

# pytest.ini
[pytest]
pythonpath = .
登入後複製

透過指定相對於根目錄的路徑條目,您可以有效地將該目錄添加到sys.path,解決導入問題。

2.實作「conftest」解決方案(Pytest

對於舊版的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板