Heim > Backend-Entwicklung > Python-Tutorial > Wie importiere ich aus Geschwisterpaketen, ohne „sys.path'-Hacks zu verwenden?

Wie importiere ich aus Geschwisterpaketen, ohne „sys.path'-Hacks zu verwenden?

Linda Hamilton
Freigeben: 2024-12-08 15:56:13
Original
250 Leute haben es durchsucht

How to Import from Sibling Packages Without Using `sys.path` Hacks?

Geschwisterpaket-Importe: Eine Lösung zur Vermeidung von sys.path-Hacks

Der Import aus Geschwisterpaketen kann eine Herausforderung bei der Organisation Ihrer Codebasis darstellen. Während sys.path.append-Hacks eine Problemumgehung bieten, gibt es eine elegantere Lösung, die diese aufdringlichen Einfügungen überflüssig macht.

Schritte:

  1. Erstellen Sie eine pyproject.toml Datei:
    Definieren Sie Ihre Paketmetadaten und Abhängigkeiten in einer pyproject.toml Datei.
  2. Verwenden Sie eine virtuelle Umgebung:
    Isolieren Sie Ihr Projekt von Systemabhängigkeiten, indem Sie eine virtuelle Umgebung erstellen.
  3. Installieren Sie Ihr Projekt im bearbeitbaren Zustand:
    Verwenden Sie pip und das Flag -e, um Ihr Paket in einem bearbeitbaren Zustand zu installieren und sicherzustellen, dass Änderungen automatisch vorgenommen werden reflektiert.
  4. Importe ändern:
    Mein Projekt voranstellen. auf Importe, die zuvor fehlgeschlagen sind, z. B. von myproject.api import function_name.

Beispiel:

Betrachten Sie die folgende Datei Struktur:

  • api/api.py
  • examples/example_one.py
  • tests/test _one.py
  • pyproject.toml

api.py:

def function_from_api():
    return 'I am the return value from api.api!'
Nach dem Login kopieren

test_one.py:

from myproject.api.api import function_from_api

def test_function():
    print(function_from_api())

if __name__ == '__main__':
    test_function()
Nach dem Login kopieren

An Führen Sie test_one.py aus und stellen Sie sicher, dass myproject in einem bearbeitbaren Zustand installiert ist. Führen Sie dann Folgendes aus:

python myproject/tests/test_one.py
Nach dem Login kopieren

Sie sollten die Ausgabe sehen: „Ich bin der Rückgabewert von api.api!“.

Schlussfolgerung:

Diese Methode ermöglicht Ihnen um aus Geschwisterpaketen zu importieren, ohne auf hackige Lösungen wie sys.path.append zurückgreifen zu müssen. Durch die Nutzung von pyproject.toml und bearbeitbaren Installationen können Sie eine saubere und modulare Codebasis beibehalten und gleichzeitig eine einfache Erweiterbarkeit und Tests ermöglichen.

Das obige ist der detaillierte Inhalt vonWie importiere ich aus Geschwisterpaketen, ohne „sys.path'-Hacks zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage