Heim >Backend-Entwicklung >Python-Tutorial >Wie vermeide ich „sys.path'-Hacks beim Importieren aus Geschwisterpaketen?
Das Importieren von Modulen aus Geschwisterpaketen kann oft eine Herausforderung darstellen, wenn Skripte über die Befehlszeile ausgeführt werden. Um diese Schwierigkeiten zu lindern, präsentieren wir eine alternative Lösung, die die Notwendigkeit umständlicher sys.path.insert-Hacks überflüssig macht.
Das werden wir tun Packen Sie unseren Code in einen einzigen Ordner und strukturieren Sie ihn wie folgt folgt:
<br>└── myproject</p> <pre class="brush:php;toolbar:false">├── api │ ├── api_key.py │ ├── api.py │ └── __init__.py ├── examples │ ├── example_one.py │ ├── example_two.py │ └── __init__.py ├── LICENCE.md ├── README.md └── tests ├── __init__.py └── test_one.py
Zusätzlich erstellen wir ein Pyproject. toml-Datei im Stammordner, um die zu beschreiben package.
Um unser Paket für Importe verfügbar zu machen, installieren wir es in einem bearbeitbaren Zustand mit pip: p>
pip install -e .
Beim Importieren von Modulen aus unserem Paket stellen wir dem Import „myproject“ voran, wie in test_one.py gezeigt:< ;/p>
from myproject.api.api import function_from_api
Beachten Sie, dass dieses Präfix nur für Importe erforderlich ist, die ohne die Datei pyproject.toml und die Pip-Installation nicht funktionieren würden.
Wenn alle notwendigen Einstellungen vorhanden sind, können wir es tun Führen Sie unser Skript über die Befehlszeile aus:
python .myprojectteststest_one.py
Dies sollte das erwartete Ergebnis ausgeben:
I ist der Rückgabewert von api.api!
Durch die Integration dieser Schritte haben wir das Problem des Imports von Geschwisterpaketen effektiv gelöst und können nun Skripts aus dem ausführen Befehlszeile, ohne auf sys.path-Hacks zurückzugreifen.
Das obige ist der detaillierte Inhalt vonWie vermeide ich „sys.path'-Hacks beim Importieren aus Geschwisterpaketen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!