Python Package Manager-Vergleich
- Dies ist eine Folie für LT, die am Firmenstand von Pycon 2020 durchgeführt wird.
Vorstellen
- Shota Yamamoto
--Visask Advisor Entwicklungsteam
- Vordere Mitte vorne
Einführung
- Python verfügt nicht über eindeutige De-facto-Standardtools wie npm, bundler
- Die meisten Werkzeuge verwenden Pip intern
――Wählen Sie unter Berücksichtigung Ihrer Aufgaben und der Entwicklungsgeschwindigkeit
Was du machen willst
- Feste Version einschließlich untergeordneter Abhängigkeit
- Paket-Upgrade
- Einfache Skriptregistrierung
Sprich nicht
- Erstellen von Paketen, Veröffentlichen in PyPI usw.
- setup.cfg, wheel
- Angenommen, eine Anwendung wird nicht als Bibliothek veröffentlicht
Werkzeuge zum Einführen
Tools, um nicht über diese Zeit zu sprechen
- anaconda
- Wird hauptsächlich beim Erstellen einer Umgebung für maschinelles Lernen verwendet
- Nicht für die Entwicklung von Webanwendungen geeignet
- flit
- Pyflow
pip-tools
Versionskontrolle
- requirements.in, requirements.txt
- Es kann vom dev-Paket getrennt werden, indem dev-requirements.in usw. vorbereitet wird.
- Generieren Sie
require.txt
mit pip-compileanforderungen.in
--Installieren Sie mit pip-sync
Versions-Upgrade
- Pakete können individuell aktualisiert werden
pip-compile --upgrade-package django
Registrieren Sie ein einfaches Skript
--Keiner
pipenv
Versionskontrolle
- Pipfile, Pipfile.lock
- Kann separat vom Entwicklungspaket beschrieben werden
https://pipenv-ja.readthedocs.io/ja/translate-ja/basics.html
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
[dev-packages]
pytest = "*"
Versions-Upgrade
- Aktualisieren Sie alle Pakete auf einmal
- Pakete können nicht einzeln aktualisiert werden
- Aktualisieren Sie alle Pakete während der Installation
- Überschreiten Sie nicht die in Pipfile beschriebene Version
Registrieren Sie ein einfaches Skript
--Schreiben Sie in Skripten von Pipfile
- Mit
pipenv run foo
ausführen
[scripts]
lint = "flake8"
Andere
- Es gab eine Zeit, in der es ungefähr anderthalb Jahre lang nicht veröffentlicht wurde
- Veröffentlicht im April dieses Jahres und mehrmals seitdem: ideograph_advantage:
- https://pypi.org/project/pipenv/#history
poetry
Versionskontrolle
- pyproject.toml, poetry.lock
- Kann separat vom Entwicklungspaket beschrieben werden
https://github.com/python-poetry/poetry
[tool.poetry.dependencies]
requests = { version = "^2.13", extras = [ "security" ] }
[tool.poetry.scripts]
my-script = 'my_package:main'
Versions-Upgrade
- Pakete können individuell aktualisiert werden
- Muss einzeln aktualisiert werden, bis die untergeordnete Abhängigkeit besteht
Registrieren Sie ein einfaches Skript
- Es gibt eine Funktion, um
* .py
vorzubereiten und auszuführen.
- Sie können keine Befehle direkt schreiben
――Es ist nicht einfach, da Sie jedes Mal eine Datei vorbereiten müssen.
- Praktisch für komplizierte Dinge
Andere
- Es gibt nur wenige Betreuer und die Entwicklungsgeschwindigkeit ist langsam
Zusammenfassung
- pipenv
――Die Anzahl der Veröffentlichungen hat in letzter Zeit zugenommen und wird sie wieder aktiver?
- poetry
――Personal am einfachsten zu bedienen
――Es dauert einige Zeit, aber wenn Sie eine Pull-Anfrage senden, wird diese ordnungsgemäß aufgenommen