


Wie löse ich „ImportError: Kein Modul benannt…'-Probleme in Pytest aufgrund von Pfadproblemen?
PATH-Probleme mit pytest: „ImportError: Kein Modul benannt...“
Bei der Verwendung von pytest kommt es häufig zu ImportError-Ausnahmen aufgrund von Pfadproblemen. Dies kann insbesondere bei unterschiedlichen Betriebssystemen und Projektstrukturen der Fall sein. Lassen Sie uns dieses Problem angehen und mögliche Lösungen erkunden.
Conftest-Lösung (pytest < 7)
Eine effektive Möglichkeit, Pfadprobleme zu beheben, ist die Verwendung einer conftest.py-Datei. Pytest sucht während der Testsammlung nach Conftest-Modulen, um benutzerdefinierte Hooks und Fixtures zu sammeln. Indem Sie eine leere conftest.py-Datei im Stammverzeichnis Ihres Projekts platzieren (wo Sie pytest ausführen), fügt pytest automatisch das übergeordnete Verzeichnis zu sys.path hinzu und macht Ihre Anwendungsmodule für den Import verfügbar.
Beispiel:
Für eine Projektstruktur wie diese:
repo/ |--app.py |--settings.py |--models.py |--tests/ |--test_app.py
Fügen Sie einfach eine leere conftest.py-Datei zum Repo/ hinzu. Verzeichnis.
Pythonpath-Einstellung (pytest >= 7)
Für neuere Versionen von pytest (7 und höher) ist die Verwendung der Pythonpath-Einstellung eine bequemere Lösung. Dadurch können Sie sys.path direkt über die Pytest-Konfiguration ändern. Fügen Sie in Ihrer pyproject.toml- oder pytest.ini-Datei Folgendes hinzu:
[tool.pytest.ini_options] pythonpath = ["."]
Dies ist ein saubererer Ansatz, der keinen benutzerdefinierten Code oder eine Manipulation von sys.path erfordert.
Sonstiges Überlegungen
Projektstruktur: Passen Sie die Platzierung der conftest.py-Datei oder die Pythonpath-Konfiguration basierend an auf Ihre Projektstruktur. Platzieren Sie beispielsweise in einem typischen src-basierten Layout conftest.py im src-Verzeichnis, nicht im Stammverzeichnis.
src-Layout: Seien Sie vorsichtig, wenn Sie src zu PYTHONPATH hinzufügen. Dies kann die Vorteile der Verwendung eines src-Layouts zunichte machen, da Sie am Ende den Repository-Code und nicht das installierte Paket testen.
Das obige ist der detaillierte Inhalt vonWie löse ich „ImportError: Kein Modul benannt…'-Probleme in Pytest aufgrund von Pfadproblemen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Fastapi ...

Verwenden Sie Python im Linux -Terminal ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...
