Comparaison du gestionnaire de packages Python
- Ceci est une diapositive pour LT réalisée sur le stand de la société Pycon 2020.
Auto-introduction
--Shota Yamamoto
- Équipe de développement des conseillers en visite
--Centre avant
introduction
--Python n'a pas d'outils standard clairs de facto comme npm, bundler
- La plupart des outils utilisent pip en interne
――Sélectionnez en tenant compte de ce que vous voulez faire et de la vitesse de développement
Chose que tu veux faire
--Version fixe, y compris la dépendance enfant
- Mise à niveau du package
- Enregistrement de script simple
Ne parle pas
--Construction de packages, publication sur PyPI, etc.
- setup.cfg, wheel
- En supposant une application qui ne sera pas publiée en tant que bibliothèque
Outils à présenter
Des outils dont il ne faut pas parler cette fois
- anaconda
- Principalement utilisé lors de la création d'un environnement pour l'apprentissage automatique
- Ne convient pas pour une utilisation dans le développement d'applications Web
- flit
- Pyflow
pip-tools
contrôle de version
- requirements.in, requirements.txt
--Il peut être séparé du paquet dev en préparant dev-requirements.in etc.
--Générer
requirements.txt
avec pip-compile requirements.in
--Installer avec pip-sync
Mise à jour de version
- Les packages peuvent être mis à jour individuellement
pip-compile --upgrade-package django
Enregistrer un script simple
--Aucun
pipenv
contrôle de version
- Pipfile, Pipfile.lock
- Peut être décrit séparément du package de développement
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 = "*"
Mise à jour de version
--Mettre à jour tous les packages à la fois
- Les paquets ne peuvent pas être mis à jour individuellement
--Mettre à jour tous les packages pendant l'installation
- Ne dépassez pas la version décrite dans Pipfile
Enregistrer un script simple
--Écrire dans les scripts de Pipfile
--Exécuter avec pipenv run foo
[scripts]
lint = "flake8"
Autre
- Il fut un temps où il n'a pas été publié pendant environ un an et demi
- Sorti en avril de cette année et plusieurs fois depuis: ideograph_advantage:
- https://pypi.org/project/pipenv/#history
poetry
contrôle de version
- pyproject.toml, poetry.lock
- Peut être décrit séparément du package de développement
https://github.com/python-poetry/poetry
[tool.poetry.dependencies]
requests = { version = "^2.13", extras = [ "security" ] }
[tool.poetry.scripts]
my-script = 'my_package:main'
Mise à jour de version
- Les packages peuvent être mis à jour individuellement
- Besoin de mettre à jour individuellement jusqu'à la dépendance des enfants
Enregistrer un script simple
--Il existe une fonction pour préparer * .py
et l'exécuter.
- Vous ne pouvez pas écrire de commandes directement
――Ce n'est pas facile car il faut à chaque fois préparer un fichier.
- Pratique pour faire des choses compliquées
Autre
--Il y a peu de mainteneurs et la vitesse de développement est lente
Résumé
- pipenv
――Le nombre de sorties augmente-t-il récemment et redevient-il plus actif?
- poetry
――Personnellement le plus simple à utiliser
――Cela prend du temps, mais si vous envoyez une pull request, elle sera prise en compte correctement