- Jedes Projekt umfasst mehrere virtuelle Dateien und blockierte Versionen mit Sperrarchiven, um die Reproduzierbarkeit zu gewährleisten.
- Wählen Sie folgende Kontexte aus: pip+venv, Pipenv, Poetry, PDM oder Rye, und lesen Sie Ihre Fortalezas.
- Damit sind Versionen geschützt, Hashes überprüft und Schwachstellen in vorübergehenden Abhängigkeiten ausgeschlossen.
- Passen Sie den Flujo entsprechend der Datei „requirements.txt“ in MWAA und Cloud Run an und verwenden Sie Ruedas oder Repos, sobald der Fehler aufgetreten ist.
Die Verwaltung von Abhängigkeiten in Python ist ein Thema, das erst nach kurzer Zeit im Haus explodiert werden muss, ohne dass es irgendwelche Schritte mit ihm gibt. Es gibt viele Leute, die ein Tagebuch mit Python programmieren, aber Sie müssen nicht darauf achten, wie Sie es installieren, installieren und die Terceros-Pakete aktualisieren. Zwischen den Werkzeugen, dem Verlust solider Gewohnheiten und der Komplexität der Abhängigkeitsgrafen ist es einfach, eine Kuriosität zu montieren, die sich auf die Suche, Prüfung und Vernachlässigung auswirkt.
In den folgenden Zeilen finden Sie eine vollständige Anleitung und praktische Anleitung, die Ihnen alles Wichtige aufzeigt: Es handelt sich um eine gute Abhängigkeitsverwaltung und weil es kritisch ist, wie man Pip und virtuelle Dateien verwendet und mit der Datei „requirements.txt“ arbeitet (Einschließlich der Integration von IDEs wie Visual Studio), die wie folgt gespeichert werden können Pipenv, Poesie, PDM o Roggen, y cómo afrontarlo en plataformas cloud como Amazon MWAA (Airflow) und Cloud Run. Sie werden auch sehen Sicherheitsempfehlungen (Blockieren und Feststecken, Schutz vor Schwachstellen) und Klarstellen, bevor sie alle Werkzeuge auslegen.
Es handelt sich um eine Abhängigkeitsverwaltung, die wichtig ist
In Python wird dieses ernsthafte Projekt in Bibliotheken und Frameworks für Dritte eingeführt. Es gibt einige Gründe, warum diese Abhängigkeiten auch ihre vorübergehenden Abhängigkeiten betreffen; Beispielsweise verwenden wir Pandas und NumPy-Arrastras. Mit einem dieser Pakete wurde eine Grafik erstellt, die ohne Kontrolle aus Inkompatibilitäten, unbefugten Kompatibilitäten oder fehlerhaften Fehlern abgeleitet werden kann.
Die Situation ist kompliziert Die Lösung von Versionskonflikten und einem Abhängigkeitsdiagramm kann in realen Fällen unlösbar sein (Einstieg in die Vollständigkeitsstufe NP-schwer). Daher ist eine Strategie gescheitert: Sie haben jedes Projekt gestartet, Versionen gefunden, sobald Sie sie gefunden haben, den Ordner mit den Archiven des Schlosses sperren und Werkzeuge verwenden, die eine transparente Form erfordern, die Sie installiert haben, und deshalb.
Pip und der Tag am Tag: Installation, Aktualisierung, Information und Reinigung
Pip ist der klassische Paketentwurf des Ökosystems und eine Reihe moderner Python-Versionen. Comprueba su presencia con pip --version o python -m pip --version. Wenn Sie aus irgendeinem Grund nicht verfügbar sind, können Sie es mit dem Installationsskript hinzufügen, das über den Paket-Geist für Ihre Linux-Distribution verfügt.
Um ein Paket mit dem offiziellen PyPI-Index zu installieren, müssen Sie Folgendes tun: pip install nombre_paquete. Wenn Sie eine konkrete Version benötigen, können Sie sie verwenden == (zum Beispiel, pip install requests==2.23.0) oder kompatible Spezifikationen wie z ~= para acotar a una rama menor (pip install requests~=2.18.0). Stellen Sie sicher, dass Sie einen lokalen Cache haben, der zukünftige Installationen beschleunigt.
Um zu überprüfen, was installiert wurde, treten immer wieder ein pip list, y si quieres quieres detalles de a packe en konkrete (route, version, declaradas declaradas), pip show nombre. Auch mit pip list --outdated Erkennen Sie entaktualisierte Pakete und Con pip install --upgrade nombre Aktualisierung einer konkreten Biblioteca. Si algo ya no te sirve, pip uninstall nombre te ayuda a limpiarlo.
Es ist auch möglich, die Git-Repositorys zu installieren, wenn sie benötigt werden, zum Beispiel: pip install git+https://github.com/usuario/repositorio.git@rama. Dieser Patrón dient Ihnen zum Schreiben, Etikettieren oder Einschließen konkreter Verpflichtungen, um die vorherigen Versionen vor einem Projekt zu überprüfen.
Repositorys, PyPI und das Anforderungspapier.txt
PyPI ist der zentrale Index des Ökosystems und wird im Großraum der Gemeinden veröffentlicht. Sie können alle Versionen, Lizenzen, Kompatibilität mit Interpretationen, Installationsbefehle und weitere Details einsehen. Nachdem Sie die Installation noch nicht abgeschlossen haben, bitten wir Sie, ein paar Minuten zu wechseln und die Installation zu überprüfen. Wenn Sie fortfahren, lesen Sie die Versionen, um Fehler zu vermeiden.
Die traditionelle Form, den Zustand Ihres Publikums zu erfassen, ist con pip freeze > requirements.txt. Dieses Archiv enthält genaue Versionen, die alle installiert wurden und die die Reproduktion des Geräts auf einer anderen Maschine erleichtern pip install -r requirements.txt. Es ist eine gute Praxis für Projekte, die Sie zwischen Ausrüstung, CI oder Produktion bewegen müssen.
Wenn Sie mit Visual Studio arbeiten, gibt es eine direkte Unterstützung für diesen Zweck: Sie können Abhängigkeiten von der Datei „requirements.txt“ installieren, generieren, vorhandene Dateien aktualisieren oder vollständig neu laden Vom Lösungsforscher und Entwickler von Python-Entwicklern. Wenn jedoch eine Abhängigkeit besteht, müssen Sie das Archiv bearbeiten, um die problematische Verpackung auszuschließen und neu zu starten, oder möglicherweise eine Version installieren, die mit den Pip-Optionen installiert werden kann.
Eine Truco, die in Unternehmensszenarien vorgerückt ist, besteht darin, ein lokales Ruedas-Repository zu installieren: mit pip wheel creas las ruedas y luego appuntas en require.txt opciones como --find-links y --no-index Zur Installation von Ihrem internen Standort aus. Diese Technik beschleunigt die Installation und vermeidet die Abhängigkeit vom Internet und anderen Geräten.

Entornos virtuales: aislamiento uneinnehmbar
Die Installation von Abhängigkeiten im gesamten globalen System Ihres Systems ist nicht einfach. Es ist zu empfehlen, dass jedes Projekt auf seinem virtuellen Server zum Leben erweckt wird, da Versionen und Pakete nur in Kapseln enthalten sind. Con venv Ich habe ein engagiertes Unternehmen erstellt und bin seither damit beschäftigt, es mit Pip zu installieren.
Dies ist eine Behandlung, die es erlaubt, die Arbeit zu erledigen und andere zu rehabilitieren. Vermeiden Sie Konflikte zwischen Versionen und erleichtern Sie das Leben in der Ausrüstung, ohne dass jedes Repositorium auf der Liste der Anforderungen steht. Wenn Sie eine Routine haben, sind Sie auf dem guten Weg.
Pipenv: Abhängigkeiten und Entornos von der Gemeinde Paraguas
Pipenv ermöglicht die Vereinfachung des Pip + Venv-Binomios und die Zusammenführung der Übertragung mit den Lock-Archiven. Unterhält a Pipfile Um Abhängigkeiten zu deklarieren Pipfile.lock Stellen Sie sicher, dass jedes einzelne Gerät genau wie geplant installiert wird.
Zu seinen Vorteilen gehören: Die Erstellung erfolgt automatisch und virtuell, Trennen Sie die normalen Abhängigkeiten von der Struktur und integrieren Sie sie in andere Ökosystemfunktionen. Installieren Sie ein Paket direkt wie Sie pipenv install requests; Wenn Sie Entwicklerabhängigkeiten wünschen, pipenv install pytest --devPara activar el entorno, pipenv shell; para salir, exit.
Bei der Pipfile Sie können Spezifikationen für bekannte Versionen verwenden ==, >=, ~ o ^. Obwohl es sich bei SemVer um eine beliebte und beliebte Methode handelt, wurde im Python-Ökosystem auf formale Versionsreferenzen verwiesen, die das PEP 440-Diktat akzeptieren, da sie nur die folgenden Informationen enthalten, damit sie nicht nach einer Option für PEP 440 gefragt werden.
Si un paquete deja de hacer falta: pipenv uninstall nombre Entfernen und Aktualisieren von Pipfile als Pipfile.lock. Für diejenigen, die eine bessere Reproduzierbarkeit und eine Erfahrung mit mehr Erfahrung als Pip+Venv benötigen, ist Pipenv eine sehr verständliche Option.
Poesie, PDM und Rye: modern mit pyproject.toml und lock
Poesie, PDM und Rye in einem weiteren Schritt: Abhängigkeiten verwalten, verwalten und veröffentlichen in pyproject.toml und in Lock-Archiven. Mit Poetry kann ein Projekt initiiert, Metadaten definiert, ein Paket erstellt und in PyPI veröffentlicht werden, ohne über seine Schnittstelle informiert zu werden. Es handelt sich um eine vollständige Lösung, um Abhängigkeiten im Zusammenhang mit den PyPI-Metadaten und dem PEP 440-Register zu lösen.
Eine Schlüsselidee für Poesie und Familie ist das pyproject.toml zeigt klar, dass das Projekt auf eine höhere Ebene gelangt, während das Archiv des Schlosses die genauen Fotos der Versionen und Hashes enthält, die funktionieren. Darüber hinaus hat das Team aufgrund der deklarativen Definition und der Lock-Garantie dafür gesorgt, dass das Schiff nicht von vorübergehenden Abhängigkeiten betroffen ist.
PDM bietet eine ähnliche Erfahrung, auch im Zentrum pyproject.toml, y Rye hat ein anderes Bild hinzugefügt: Zusätzlich zu den Abhängigkeiten können Python-Versionen für das Projekt installiert werden, einheitlich mehr als der Flujo de Trabajo. Rye wurde von Armin Ronacher angeregt, der das Ökosystem von Projekten wie Flask und Click rekonstruiert hat.
Como aviso para navegantes: Die Lösung von Konflikten zwischen Paketen ist nicht perfekt. Bei Gelegenheiten, bei denen Priorität auf eine Mandatsabhängigkeit gelegt werden muss, müssen Aktualisierungen vorgenommen oder Codes angepasst werden, um konziliare Versionen zu erhalten. Es ist das wahre Leben der Projekte, sobald der Grafo Crece erreicht ist.
UV und Pixi: Neue Propuestas mit hoher Geschwindigkeit und Reproduzierbarkeit
In den letzten Jahren haben Sie die Geräte wie UV- und Pixi-Geräte bearbeitet, um den Fokus auf die schnelle Installation und eine große Menge reproduzierbarer und versiegelter Materialien zu legen. In dieser Zeit haben wir uns intensiv mit der Vorbereitung beschäftigt, um stabile Abhängigkeitsstadien zu definieren, mit einer Erfahrung, die zu einer attraktiven Wirkung für CI führte und zu einem großen Team führte.
Aunque todavía conviven con opciones consolidadas, Bei Projekten, bei denen die Flaschenfüllungen in Vorbereitung sind, muss die Reproduzierbarkeit vorrangig geprüft werden. Die endgültige Wahl hängt von Ihren Anforderungen ab, Sie müssen mit der Restaurierung Ihrer Werkzeuge zusammenarbeiten.
Sicherheit: Sperren, Sperren, Überprüfen und Entfernen
Die Blockierung der mittleren Archivierungsversionen wie „requirements.txt“, „Pipfile.lock“ oder „Poetry Lock“ lautet: „Reduzieren Sie die realen Werte.“ In den letzten Versionen wurde die Tatsache minimiert, dass eine versehentliche Aktualisierung ein Paket mit einer aktuellen Schwachstelle einführte, die möglicherweise böswillig war. Además, muchos lock files conservan hashes de integridad Von den Artefakten, von der Art und Weise, dass das heruntergeladene Archiv nicht zufällig ist, ist die Herstellung so, dass sie in der Suministro-Kategorie auf einen Susto stößt.
Para quienes lideran equipos o despliegan a producción, Zentralisierung und Audit-Abhängigkeiten sind zentral. Scan-Heramientas wie integrierte Analyseplattformen (z. B. Verwendung). pipgrip Um den Grafen zu extrahieren, werden Schwachstellen, problematische Lizenzen und heruntergekommene Pakete erkannt. Einschließlich der Tatsache, dass das Download- und Analysierungssystem in einem Eingangsbereich liegt, ist der Zugriff auf die Sichtbarkeit: Es hängt davon ab, ob es verfügbar ist und was angezeigt wird.
Wenn Sie Auftraggeber für die Einführung von Abhängigkeiten auf der Ebene der Architektur sind, Sie können die zentrale Stelle für die Prüfung und Wartung von Riesgo-Komponenten bewilligen, Intercambiando-Implementierungen für envoltorios secureos o dobles en entornos de pruebas. Der Schlüssel ist injiziert, nur einzelne Teile sind konfigurierbar, können in Versionen umgewandelt und validiert werden.
Integration mit Visual Studio: Generierung und Verwaltung von „requirements.txt“.
Visual Studio ermöglicht den klassischen Zyklus „requirements.txt“.: Sie können alles installieren, was im Archiv gespeichert ist, und zwar je nach aktueller oder aktualisierter Form. Sobald Sie existieren, bietet die IDE Optionen an, die Sie eingeben müssen, aktualisieren Sie nur die präsentierten Einträge oder aktualisieren Sie sie und stellen Sie neue Einträge fest, die im Browser gefunden wurden.
Wenn während der Installation alles fehlschlägt, Sie haben bereits einige Rückschlüsse gezogen: Bearbeiten Sie das Archiv, um den Paketkonflikt auszuschließen, und wenden Sie sich an die Absicht, oder verwenden Sie die Pip-Optionen, um eine Version auszuwählen, die Sie installieren möchten. Für entornos controlados, compilar ruedas con pip wheel und verwenden --find-links y --no-index Die Datei „requirements.txt“ wird erheblich beschleunigt und ist weniger vom Internet abhängig.
Cloud und Despliegues: Amazon MWAA (Airflow) und Cloud Run
Bei Amazon Managed Workflows für Apache Airflow (MWAA) basiert die Abhängigkeitsinstallation auf einer „requirements.txt“-Datei in S3. Nachdem wir eine neue Version erhalten haben, wurden in der MWAA-Konsole die Überarbeitung und der Kundendienst überprüft pip3 install -r requirements.txt Tanto en el Scheduler como en los Workers. Sie können Airflow-Extras installieren, Ruedas (.whl) und verbrauchen auch private kompatible Indizes mit PyPI.
Es wird empfohlen, verschiedene Versionen zu verwenden, um Inkompatibilitäten zu vermeiden. Sobald ein Paket ohne Version verfügbar ist, ist MWAA das letzte verfügbare Paket, da die Gefahr eines Konflikts mit der Restaurierung Ihres Archivs besteht. Sie können die Protokolle des CloudWatch-Planers überprüfen, um zu bestätigen, dass die Installation wie geplant erfolgt, und um Installationsfehler zu beseitigen.
Im Fall von Cloud Run für Funktionen in Python, Der Standardwert ist „requirements.txt“ im Verzeichnis „main.py“.. Pipfile oder Pipfile.lock werden nicht für diesen Flujo unterstützt, da sie nicht in das Projekt einbezogen werden müssen. Das Functions Framework ist eine obligatorische Abhängigkeit; Da die Plattform von Ihnen installiert werden kann, ist eine ausdrückliche Erklärung erforderlich.
Wenn Sie sich auf lokale Abhängigkeiten verlassen müssen (Sie haben keinen Zugriff auf das Internet oder das Paket ist nicht in PyPI verfügbar), puedes descargar ruedas con pip download Für die Version von Python und die entsprechende Plattform y desplegarlas junto al code. Es besteht auch die Möglichkeit, Abhängigkeiten von der Kompilierungsvariable zu erhalten GOOGLE_VENDOR_PIP_DEPENDENCIES, das zeigt an, dass das Verzeichnis mit den Artefakten wiederverwendet werden muss, ohne dass eine Installation des Red erfolgt.
Para dependencias privadas, Artifact Registry kann Ihre Pakete hinzufügen und die Zusammenstellung automatisch Anmeldeinformationen generieren para la cuenta de servicio. Wenn mehrere Repositorys erforderlich sind, kann ein virtuelles Repository wiederholt werden, das die PIP-Auflösungsreihenfolge kontrolliert. Wenn das private Repository zur Authentifizierung über SSH verwendet wird, müssen Sie die Artefakte zunächst kopieren, da der Build keine SSH-Speicher bereitstellt.
Buenas prácticas que evitan disgustos
Jedes Projekt ist auf Ihrem Weg und vermeiden Sie globale Installationen; Es gab schreckliche Konflikte zwischen den Projekten, und ich erlaubte ihnen, sie auszuleihen und sie wieder aufzunehmen, ohne die Sicherheit zu verlieren, sobald sie scheiterte.
Fija-Versionen, sobald ein Entorno für Produktion, CI oder Demos zusammengestellt wurde. Sie verwenden die Datei „requirements.txt“, „Pipfile.lock“ oder „Poetry Lock“. Das Ziel besteht darin, dass das Gerät und die Server genau das Gleiche tun, das mit den Paketen und Abhängigkeiten zusammenhängt.
Sie haben ein Sperrarchiv verwendet, das Ihr Herr zulassen musste Sie prüfen, ob Hashes zur Überprüfung der Integrität enthalten sind. Wenn Sie Abweichungen feststellen, untersuchen Sie diese vor der Aktualisierung.
Automatisieren Sie die Erkennung von Schwachstellen In Ihren direkten und transitiven Abhängigkeiten. Informieren Sie uns regelmäßig darüber, dass Ihre Lizenz und Ihr Sicherheitsstatus vorrangig Aktualisierungen mit der Kabine erfordern.
Elige Herramienta según el Tamaño und Phasen des Projekts: für Skripte oder Prototypen, pip+venv mit „requirements.txt“ wird aufgerufen; für Produkte mit Ausrüstung und Pipeline, Berücksichtigung von Pip-Tools, Pipenv oder Poesie; si además empaquetas y publicas, Poetry o PDM brillant; Wenn Sie auch andere Python-Versionen verwenden müssen, vereinfacht Rye die Verbindung.
Sie müssen jedes einzelne Gerät im Katalog verwenden
pip + venv Encaja de Maravilla in kleinen Projekten, schnelle Prüfungen und zahlreiche Laboratorien. Añade requirements.txt Sobald Sie mit dem Kauf fertig sind, können Sie die Zahlung verweigern.
Pipenv Es ist ideal, wenn Sie eine integrierte Erfahrung mit Entornos und Lock machen möchten, ohne Ihre Arbeitsform drastisch zu verändern. Die Reproduzierbarkeit ist seit null Jahren gewährleistet.
Poesie Wenn das Projekt ein ernstes Paket ist, müssen Sie Metadaten definieren, Abhängigkeiten auflösen, Artefakte konstruieren und in PyPI veröffentlichen. El lock garantiert, dass die Produktion genau das Richtige für Sie ist.
PDM Ich habe eine moderne Erfahrung mit pyproject.toml gemacht und bin für viele Leute eine Alternative zu Poetry mit ähnlichen Entscheidungen, aber nicht anders.
Roggen Wenn Sie nach der Python-Version des Projekts fragen, entsteht ein kohärenter Fluss von Extrem zu Extrem. Es ist besonders nützlich, wenn verschiedene Repositorien alinear sein müssen, um als Abhängigkeiten interpretiert zu werden.
Aktualisierungen, Retrozessionen und Sonderfälle
Planifica cuándo actualizar Ich vermeide es einfach vor einem Kritiker; Versuchen Sie, eine Reihe von Inszenierungen mit der neuen Sperre durchzuführen. Sobald dies der Fall ist, müssen Sie das vorherige Schloss zu einem stabilen Zustand bringen.
Wenn der Code installiert und heruntergeladen werden muss, usa la instalación desde Git Con rama o etiqueta estable y documenta el porqué. Nachdem wir eine Version auf PyPI gefunden haben, bin ich zu ihr gegangen, um mich an die Gewohnheit zu wenden.
Para entornos sin salida a Internet, Compilar y almacenar ruedas propias es el as bajo la manga. Öffnen Sie Ihre „requirements.txt“-Datei und klicken Sie auf „Anfragen“. --find-links y desactiva índices externos con --no-index wenn es Sinn macht.
Deshalb habe ich viele Abhängigkeiten von Python und kann sie vermeiden
Die Kombination von Werkzeugen, veränderten Gewohnheiten und vielfältigen Optionen führen zu Fehlern in der Gemeinde: Global installieren, keine Versionen herunterladen, keine gespeicherten Dateien verwenden, oder das Diagramm im Transit ignorieren. Der Empfang, damit Sie nicht lange warten müssen, ist eine Strategie des Prinzips und wird in der README-Datei geschrieben: Was Sie tun müssen, ist, wie das Projekt beginnt, wie es aktualisiert wird, und wie Sie es wünschen.
Außerdem wurden die konzeptionellen Unterschiede zwischen SemVer und PEP 440 berücksichtigt. Zur korrekten Interpretation der Bediener und Erwartungen an die Kompatibilität. Alle Bibliotheken weisen keine Disziplin auf, und Ihr Antrag wird erneut gestellt, bis die endgültige Entscheidung getroffen ist.
Die Verwaltung von Abhängigkeiten in Python ist nicht mehr möglich, da sie ein Problem darstellt dominas lo básico de pip y venvWenn Sie die Dateien sperren, wird ein moderner Gestorbene benötigt, sobald das Projekt abgeschlossen ist Achten Sie auf die Sicherheit der Scanner. Tanto lokal wie auf Cloud-Plattformen wie MWAA und Cloud Run, Versionen herunterladen, blockieren und überprüfen Markieren Sie den Unterschied, indem Sie ihn mit Vertrauen verdrängen oder mit jedem Build die Regel übernehmen.