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 ...
$ pipenv install
... und wenn es bereits eine requirements.txt
Datei hat, wird eine Pipfile
Datei mit den Anforderungen und einem Ordner für die virtuelle Umgebung generiert, andernfalls wird eine leere Pipfile
Datei generiert . Wenn Sie etwas, das Sie installiert haben, nicht mochten oder Ihre Meinung geändert haben, geben Sie einfach ...
$ pipenv uninstall <package>
... und du kannst loslegen. Um die virtuelle Umgebung zu aktivieren, die pipenv bereits generiert hat, gehen Sie zu ...
$ pipenv shell
... und Ihre virtuelle Umgebung wird aktiviert. Um die Umwelt zu verlassen ...
$ exit
... 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 ...
$ pipenv install flask
... und es wird als Abhängigkeit für die Bereitstellung und Ausführung oder durch Verwendung von ... hinzugefügt.
$ pipenv install --dev pytest
... und es wird als Abhängigkeit für die Entwicklungszeit verwendet. Die Dateisyntax ist wie folgt ziemlich einfach.
[[source]] # Here goes your package sources (where you are downloading your packages from).
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages] # Here goes your package requirements for running the application and its versions (which packages you will use when running the application).
requests = "*"
flask = "*"
pandas = "*"
[dev-packages] # Here goes your package requirements for developing the application and its versions (which packaes you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
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 ...
$ pipenv lock
... 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.
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.