Es scheint, dass Pipfile / Pipfile.lock im Zusammenhang mit Python-Paketen als Ersatz für require.txt gedacht sind. Es gibt jedoch nicht viel Dokumentation darüber, wie diese tatsächlich funktionieren. Ich habe hier im PyPi-Bereich der Python-Website eine sich entwickelnde Beschreibung von pipfile gefunden, aber sie ist ziemlich chaotisch und erklärt nicht die Semantik der verschiedenen Abschnitte der Datei.
Gibt es Hinweise zum Verständnis dieser Dateien?
Gemfile
undGemfile.lock
aus der Ruby-Welt: Die.lock
Datei hat spezifische Versionen für jede Abhängigkeit; Der ohne diese Erweiterung hat nur die Versionen, die dem kontrollierenden Menschen bekannt sind. Trotzdem ist es vielleicht etwas verfrüht, nach einer Erklärung für etwas zu fragen, das sich noch weiterentwickelt und weit davon entfernt ist, gut definiert und viel weniger standardisiert zu sein.Pipfile
undrequirements.txt
hauptsächlich darin, dass erstere versuchen, Funktionen aus der Ruby-Welt zu übernehmen, dh in der Lage zu sein, Abhängigkeitssätze für mehrere Umgebungen und mit Bedingungen / Optionen / etc. In einer einzigen Datei anzugeben).Antworten:
Das Konzept hinter diesen Dateien ist einfach und analog zu anderen bereits vorhandenen Tools, wenn Sie mit Ruby's Bundler oder Node's Npm vertraut sind.
Pipenv
ist sowohl ein Paket- als auch ein Verwaltungstool für virtuelle Umgebungen, das die Dateien Pipfile und Pipfile.lock verwendet, um diese Ziele zu erreichen.Pipenv verwaltet die virtuelle Umgebung für Sie auf eine Standardmethode (kein Aktivieren und Deaktivieren mehr erforderlich). Im Folgenden finden Sie einige Grundlagen für den Einstieg. Weitere Informationen finden Sie auf der pipenv-Website .
Loslegen
Die Verwendung von pipenv ist ganz einfach. Geben Sie in Ihrem Projektordner ...
... und wenn es bereits eine
requirements.txt
Datei hat, wird einePipfile
Datei mit den Anforderungen und einem Ordner für die virtuelle Umgebung generiert, andernfalls wird eine leerePipfile
Datei generiert . Wenn Sie etwas, das Sie installiert haben, nicht mochten oder Ihre Meinung geändert haben, geben Sie einfach ...... und du kannst loslegen. Um die virtuelle Umgebung zu aktivieren, die pipenv bereits generiert hat, gehen Sie zu ...
... und Ihre virtuelle Umgebung wird aktiviert. Um die Umwelt zu verlassen ...
... und Sie kehren zu Ihrer ursprünglichen Terminalsitzung zurück.
Pipfile
Die Pipfile- Datei soll die Paketanforderungen für Ihre Python-Anwendung oder -Bibliothek sowohl für die Entwicklung als auch für die Ausführung angeben. Sie können ein Paket installieren, indem Sie einfach ...
... und es wird als Abhängigkeit für die Bereitstellung und Ausführung oder durch Verwendung von ... hinzugefügt.
... und es wird als Abhängigkeit für die Entwicklungszeit verwendet. Die Dateisyntax ist wie folgt ziemlich einfach.
Pipfile.lock
Mit Pipfile.lock soll basierend auf den in Pipfile vorhandenen Paketen angegeben werden , welche spezifische Version davon verwendet werden soll, um das Risiko zu vermeiden, dass automatisch voneinander abhängige Pakete aktualisiert werden und Ihr Projektabhängigkeitsbaum beschädigt wird.
Sie können Ihre aktuell installierten Pakete mit ...
... und das Tool sucht in Ihrem Ordner für die virtuelle Umgebung, um die Sperrdatei basierend auf den aktuell installierten Versionen automatisch für Sie zu generieren. Die Dateisyntax ist nicht so offensichtlich wie bei Pipfile . Aus Gründen der Übersichtlichkeit wird sie hier nicht angezeigt.
quelle
[[source]]
ist. Ist das die Quelle für die Pakete, die von pipenv oder etwas anderem heruntergeladen werden? Ich denke, der Rest der beiden Dateien ist offensichtlich genug.Pipfile
. Wenn bei einem Paket-Upgrade etwas kaputt geht, sollte es durch Überprüfen des Paketversionsverlaufs behoben werden können. In der Tat empfiehlt einer der Ersteller der Anforderungsbibliothek, dies hier zu tun .--skip-lock
Flag angeben , um es zu zwingen, diePipfile.lock
Datei zu ignorieren , anstatt sie zu zwingen, sie zu verwenden;)