Heim > Backend-Entwicklung > Python-Tutorial > Wie vermeide ich „sys.path'-Hacks beim Importieren aus Geschwisterpaketen?

Wie vermeide ich „sys.path'-Hacks beim Importieren aus Geschwisterpaketen?

Patricia Arquette
Freigeben: 2024-12-09 12:10:13
Original
260 Leute haben es durchsucht

How to Avoid `sys.path` Hacks When Importing from Sibling Packages?

Adressierung von Geschwisterpaketimporten


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.


Der Ansatz


Das werden wir tun Packen Sie unseren Code in einen einzigen Ordner und strukturieren Sie ihn wie folgt folgt:


<br>└── myproject</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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
Nach dem Login kopieren


Zusätzlich erstellen wir ein Pyproject. toml-Datei im Stammordner, um die zu beschreiben package.


Installieren des Pakets


Um unser Paket für Importe verfügbar zu machen, installieren wir es in einem bearbeitbaren Zustand mit pip:

pip install -e .

Umgang mit Importen


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.


Ausführen der Skript


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!

Fazit


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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage