268 votes

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

Je suis un programmeur ruby essayer d'apprendre le langage python. Je suis de la famille avec pyenv car il est comme un copier-coller à partir 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 venir avec pip paquet. Ce que je ne comprends toujours pas, il existe de nombreuses bonnes libs python qui suggère l'utilisation de ce virtualenv et anaconda. Je peux même trouver virtualenv plugin pour pyenv.

Maintenant, je suis de se confondre avec l'objet de ces deux pyenv et virtualenv. pire, à l'intérieur de pyenv il y a un virtualenv plugin.

mes questions sont les suivantes:

  • quelle est la différence entre pyenv et virtualenv?
  • Quelle est la différence dans l'utilisation de pip de commande à l'intérieur de pyenv et virtualenv?
  • qu'est-ce pyenv virutalenv faire?

votre explication avec un exemple sera fortement appréciée.

259voto

Wade Williams Points 333

Edit: Il est important de mentionner pip ici aussi, comme conda et pip ont des similitudes et des différences qui sont pertinentes à ce sujet.

pip: le Python Package Manager.

  • Vous pourriez penser d' pip que le python équivalent de l'ruby gem commande
  • pip n'est pas fourni avec python par défaut.
  • Vous pouvez installer Python en utilisant le homebrew, qui va installer pip automatiquement: brew install python
  • La dernière version de OSX n'incluent pas de pip par défaut. Pour ajouter à ce programme de votre système mac est la version de python, vous pouvez sudo easy_install pip
  • Vous pouvez trouver et publier les paquets python à l'aide de PyPI: Le Python Package Index
  • L'requirements.txt fichier est comparable à la ruby gemfile
  • Pour créer un fichier texte, pip freeze > requirements.txt
  • Remarque, à ce stade, nous avons python installé sur notre système, et nous avons créé un requirements.txt fichier qui décrit tous les paquets python qui ont été installés sur votre système.

pyenv: Gestionnaire de Version de Python

  • À partir de la documentation: pyenv vous permet de basculer facilement entre plusieurs versions de Python. C'est simple, discrète, et suit l'UNIX de la tradition de l'unique but des outils qui font une chose bien. Ce projet a été forké rbenv et ruby-construire, et modifié pour Python.
  • Beaucoup de gens hésitent pas à utiliser python3.
  • Si vous avez besoin d'utiliser différentes versions de python, pyenv vous permet de gérer facilement.

virtualenv: Python responsable Environnement.

  • À partir de la documentation: La base problème à résoudre est l'une des dépendances et des versions, et indirectement les autorisations. Imaginez que vous avez une application qui a besoin de la version 1 de LibFoo, mais d'une autre application nécessite la version 2. Comment pouvez-vous utiliser ces applications? Si vous installez le tout dans /usr/lib/python2.7/site-packages (ou quel que soit votre plate-forme de l'emplacement standard de l'est), il est facile de se retrouver dans une situation où vous avez involontairement mise à niveau d'une application qui ne devrait pas être mis à niveau.
  • Pour créer un virtualenv, il suffit de l'invoquer virtualenv ENVENV est un répertoire pour placer le nouvel environnement virtuel.
  • Pour initialiser l' virtualenv, vous avez besoin d' source ENV/bin/activate. Pour arrêter de l'utiliser, il suffit de téléphoner deactivate.
  • Une fois que vous activez l' virtualenv, vous pouvez installer tous d'un espace de travail du package exigences en exécutant pip install -r contre le projet de l' requirements.txt le fichier.

Anaconda: Le Gestionnaire De Package + De Responsable Environnement + Les Bibliothèques Scientifiques.

  • À partir de la documentation: Anaconda 4.2.0 comprend une facilité d'installation de Python (2.7.12, 3.4.5, et/ou 3.5.2) et les mises à jour de plus de 100 pré-construit et testé scientifique et analytique Python des forfaits qui incluent NumPy, les Pandas, SciPy, Matplotlib, et IPython, avec plus de 620 plus de paquets disponibles via un simple conda install <packagename>
  • En tant que développeur web, je n'ai pas utilisé de l'Anaconda. C'est ~3 GO, y compris tous les paquets.
  • Il est allégée miniconda version, 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 qu' conda vous permet d'installer des paquets, ces paquets sont séparés que de PyPI de paquets, ainsi vous pouvez toujours besoin d'utiliser pip en outre, selon les types de colis, vous devez installer.

Voir aussi:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X