Quelle est la différence entre pyenv, virtualenv, anaconda?

je suis un programmeur ruby essayant d'apprendre le python. Je suis une jolie famille avec pyenv puisque c'est comme un copier-coller de rbenv. Pyenv permet d'avoir plus d'une version de python dans un système et aussi d'isoler le python, sans toucher à la partie sensible du système.

je suppose que chaque installation de python vient avec un paquet pip. Ce que je ne comprends toujours pas, c'est qu'il y a beaucoup de bons libs de python qui suggèrent d'utiliser ce virtualenv et anaconda. Je peut même trouver le plugin virtualenv pour pyenv.

maintenant je me confonds avec le but de ces deux pyenv et virtualenv. pire à l'intérieur de pyenv il y a un plugin virtualenv.

mes questions sont:

  • Quelle est la différence entre pyenv et virtualenv?
  • y a-t-il une différence dans l'utilisation de la commande pip à l'intérieur de pyenv et de virtualenv?
  • qu'est-ce que ce pyenv virutalenv do?

votre explication par exemple sera très appréciée.

48
demandé sur eldos 2016-07-06 09:31:10

1 réponses

Edit: il est intéressant de mentionner pip ici aussi, comme conda et pip ont des similitudes et des différences qui sont pertinentes pour ce sujet .

pip: le Python Package Manager.

  • vous pourriez penser à pip comme l'équivalent python du ruby gem commande
  • pip n'est pas inclus avec python par défaut.
  • vous pouvez installer Python en utilisant homebrew , qui installera PIP automatiquement: brew install python
  • la version finale D'OSX n'incluait pas pip par défaut. Pour ajouter pip à la version de python de votre système mac, vous pouvez sudo easy_install pip
  • vous pouvez trouver et publier des paquets python en utilisant PyPI: the Python Package Index
  • les prescriptions.txt dossier est comparable à la ruby gemfile
  • pour créer un fichier texte d'exigences, pip freeze > requirements.txt
  • Remarque, à ce stade, nous avons python installé sur notre système, et nous avons créé une exigences.txt fichier qui décrit tous les paquets python qui ont été installés sur votre système.

pyenv: Python Version Manager

  • De la docs : pyenv vous permet de basculer facilement entre plusieurs versions de Python. C'est simple, discret, et suit la tradition UNIX d'outils à usage unique qui font une chose bien. Ce projet a été bifurqué de rbenv et ruby-build, et modifié pour Python.
  • Beaucoup de gens hésitez pas à utiliser python3 .
  • si vous devez utiliser différentes versions de python, pyenv vous permet gérer facilement.

virtualenv: Python Environment Manager.

  • From the docs : le problème de base abordé est celui des dépendances et des versions, et indirectement des permissions. Imaginez que vous ayez une application qui nécessite la version 1 de LibFoo, mais une autre application nécessite la version 2. Comment utiliser ces deux applications? Si vous installez tout dans / usr/lib / python2.7 / site-packages (ou quel que soit l'emplacement standard de votre plate-forme), il est facile de se retrouver dans une situation où vous mettez à jour involontairement une application qui ne devrait pas être mis à jour.
  • pour créer un virtualenv , il suffit d'invoquer virtualenv ENV , où ENV est un répertoire pour placer le nouvel environnement virtuel.
  • pour initialiser le virtualenv , vous devez source ENV/bin/activate . Pour arrêter de l'utiliser, il suffit d'appeler deactivate .
  • une fois que vous avez activé le virtualenv , vous pouvez installer tous les paquets requis d'un espace de travail en lançant pip install -r dans le fichier requirements.txt du projet.

Anaconda: Gestionnaire De Paquets + Gestionnaire D'Environnement + Bibliothèques Scientifiques Supplémentaires.

  • à Partir de la documentation : Anaconda 4.2.0 comprend une installation facile de Python (2.7.12, 3.4.5, et / ou 3.5.2) et des mises à jour de plus de 100 paquets Python pré-construits et testés scientifiques et analytiques qui comprennent NumPy, Pandas, SciPy, Matplotlib, et IPython, avec plus de 620 paquets disponibles via un simple conda install <packagename>
  • en tant que développeur web, Je n'ai pas utilisé Anaconda. C'est ~3 Go incluant tous les paquets.
  • il y a une version allégée miniconda , qui semble comme il pourrait être plus simple que d'utiliser pip + virtualenv , bien que je n'ai pas l'expérience de l'utiliser personnellement.
  • alors que conda vous permet d'installer des paquets, ces paquets sont séparés des paquets PyPI, donc vous pouvez toujours avoir besoin d'utiliser pip en plus en fonction des types de paquets que vous devez installer.

Voir aussi:

56
répondu Wade Williams 2018-04-03 17:52:05