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