En un mot, Anaconda est livré avec une bibliothèque de calculs scientifiques en plus du Python lui-même depuis le début. Il a également été conçu pour simplifier la gestion et le déploiement des packages et est livré avec une commande de gestion des packages appelée conda.
Dans le monde de Python, un outil de gestion de paquets s'est attaché à lui-même depuis longtemps, et dans le passé j'ai utilisé quelque chose appelé EasyInstall, et pour utiliser pip plus tard J'ai dû le mettre en place. C'était gênant un par un. C'est le meilleur moment pour avoir des pips par défaut en Python ces jours-ci. Avec cette commande, vous pouvez installer le package publié sur le site appelé PyPI via Internet avec la commande. C'est le meilleur moment.
À propos, une histoire commune est le discours qui «rompt» lorsque conda et pip sont utilisés ensemble. Je ne suis pas sûr de ce qu'il prétend casser, mais il est inhabituel de le mettre dans le même emballage avec conda ou pip en premier lieu. Ce n'est pas le système de gestion des paquets qui est cassé, mais plutôt votre tête qui essaie de faire quelque chose d'incohérent.
Ne vous méprenez pas, Anaconda place le package en tapant la commande conda de base, mais vous pouvez également utiliser pip. L'ancien conda est entré à partir du référentiel Anaconda. Ce dernier pip provient de PyPI. Bien sûr, ce dernier a plus de packages. De plus, PyPI n'a pas de révision, donc n'importe qui peut être auteur de paquet. À l'extrême, même si vous écrivez un code source étrange et le publiez sur PyPI, personne ne l'a vérifié. Si vous empaquetez le code source que vous utilisez uniquement pour votre projet et le mettez dans PyPI, personne ne vous le dira.
D'autre part, le référentiel d'Anaconda est géré par la société, donc je pense que je le vérifie tel quel, mais je ne suis pas une personne à l'intérieur, donc je ne vais pas garantir "Je vérifie!".
Il existe également un référentiel géré par la communauté appelé conda-forge, que vous pouvez également entrer avec conda. Mais au moment de l'utiliser, il semble que ce soit un produit de la communauté après tout.
Pour le dire franchement, les dépendances entre les packages dépendent de la commodité de l'auteur, donc personne ne regarde tout le monde Python et n'examine rigoureusement ces relations. Cela dépend de vous qui l'utilisez.
Ce genre de discussion existe depuis longtemps non seulement en Python mais aussi dans le système de gestion de paquets de Ruby, par exemple, et après tout, tout le monde crée des paquets comme il l'entend, donc Freedom. L'open source est une telle chose. Je pense que l'atmosphère est telle que l'utilisateur doit le vérifier.
Je pense personnellement que seule la version stable de Debian vérifie minutieusement les dépendances entre les paquets et en maintient la qualité.
Comme le responsable et l'auteur du package le savent, lors de l'enregistrement auprès de PyPI, écrivez diverses méta-informations dans le fichier de distribution du package.
Ainsi, comment vérifier les informations de dépendance peut être affiché avec la commande suivante.
pip install pipdeptree #Entrez avec pip
pipdeptree -p <nom du paquet>
Par exemple, voici quelques exemples de packages appelés pandas pour chaque version.
pandas==0.16.2
- numpy [required: >=1.7.0, installed: 1.11.2]
- python-dateutil [required: >=2, installed: 2.6.0]
- six [required: >=1.5, installed: 1.10.0]
- pytz [required: >=2011k, installed: 2016.7]
pandas==0.22.0
- numpy [required: >=1.9.0, installed: 1.13.3]
- python-dateutil [required: >=2, installed: 2.6.1]
- six [required: >=1.5, installed: 1.11.0]
- pytz [required: >=2011k, installed: 2017.2]
Cela vous donnera une idée de quel package dépend de quelle version de quel package.
Un cas courant est que vous le gérez avec conda, mais que vous le mettez accidentellement avec pip. Ainsi, les paquets en double peuvent être visualisés avec le one-liner ci-dessous.
conda list | cut -d ' ' -f 1 | sort | uniq -d
C'est une bonne idée de vérifier de temps en temps pour s'assurer qu'il n'y a pas de doublons.
C'est pourquoi il est devenu plus long, mais en résumé
-La gestion des paquets d'Anaconda est fournie avec les commandes conda et pip. -En gros, utilisez conda pour faire référence au référentiel Anaconda. ・ Utilisez pip pour saisir des éléments qui ne sont pas en conda -Vérifiez occasionnellement les doublons, et s'il y a des doublons, donnez la priorité à conda.
Vous pouvez créer l'environnement cible en vous référant à ceux-ci.
Je pense que ça ressemble à ça. J'accepte toutes les objections, donc j'apprécierais vos opinions. C'est dur, mais c'est tout.
Recommended Posts