Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Saya Membetulkan 'ImportError: Tiada modul bernama...' Ralat dalam Pytest?

Bagaimana Saya Membetulkan 'ImportError: Tiada modul bernama...' Ralat dalam Pytest?

Susan Sarandon
Lepaskan: 2024-12-04 13:29:11
asal
927 orang telah melayarinya

How Do I Fix

Mengatasi ImportError: Tiada Modul Dinamakan Isu dengan Pytest

Apabila menghadapi ralat "ImportError: No module named..." semasa menggunakan pytest, adalah penting untuk dipertimbangkan isu kemungkinan konfigurasi PATH, terutamanya pada sistem Linux atau Windows. Dalam kes khusus ini, pengguna telah memasang pytest menggunakan easy_install pada Mac dan menghadapi masalah semasa menguji projek dengan struktur fail berikut:

repo/
   |--app.py
   |--settings.py
   |--models.py
   |--tests/
          |--test_app.py
Salin selepas log masuk

Untuk menyelesaikan isu ini, pendekatan berikut disyorkan:

1. Menggunakan Konfigurasi 'pythonpath' (Pytest >= 7)

Pytest telah memperkenalkan pemalam teras yang membolehkan pengubahsuaian sys.path melalui tetapan konfigurasi 'pythonpath'. Penyelesaian yang dipermudahkan ini melibatkan penambahan baris berikut pada fail pyproject.toml atau pytest.ini projek anda:

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

# pytest.ini
[pytest]
pythonpath = .
Salin selepas log masuk

Dengan menentukan entri laluan berbanding direktori akar, anda dengan berkesan menambah direktori itu ke sys.path, menyelesaikan isu import.

2. Melaksanakan Penyelesaian 'conftest' (Pytest < 7)

Untuk versi pytest yang lebih lama, pendekatan yang kurang invasif melibatkan mencipta fail kosong bernama 'conftest.py' dalam direktori akar projek:

$ touch repo/conftest.py
Salin selepas log masuk

Dengan berbuat demikian, pytest secara automatik akan menambah direktori induk bagi 'conftest.py' ke sys.path, membolehkan import berjaya.

Penjelasan:

Pytest mencari modul 'conftest' semasa pengumpulan ujian untuk mengumpulkan tersuai cangkuk dan lekapan. Untuk mengimport objek tersuai ini, pytest menambah direktori induk 'conftest.py' pada sys.path.

Kesimpulan:

Pendekatan yang disyorkan untuk menyelesaikan isu import dalam pytest bergantung pada versi yang anda gunakan. Untuk pytest >= 7, konfigurasi 'pythonpath' diutamakan, manakala untuk pytest < 7, penyelesaian 'conftest' kekal berkesan.

Atas ialah kandungan terperinci Bagaimana Saya Membetulkan 'ImportError: Tiada modul bernama...' Ralat dalam Pytest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan