2016-07-06 21 views
27

Sono un programmatore di rubini che cerca di imparare Python. Sono una bella famiglia con pyenv dato che è come una copia e incolla da rbenv. Pyenv consente di avere più di una versione di Python in un sistema e anche di isolare Python senza toccare parti sensibili del sistema.Qual è la differenza tra pyenv, virtualenv, anaconda?

Suppongo che ogni installazione python sia dotata di pacchetto pip. Quello che ancora non capisco è che ci sono molte buone librerie Python che suggeriscono di usare questo virtualenv e anaconda. Posso persino trovare il plugin virtualenv per pyenv.

Ora mi sto confondendo con lo scopo di questi due pyenv e virtualenv. peggio dentro pyenv c'è un plugin virtualenv.

le mie domande sono:

  • qual è la differenza tra il pyenv e virtualenv?
  • C'è qualche differenza nell'usare il comando pip all'interno sia di pyenv che di virtualenv?
  • cosa fa questo pyenv virutalenv?

la tua spiegazione con l'esempio sarà molto apprezzata.

+0

correlati: http: // StackOverflow .it/questions/29950300/what-is-the-relationship-between-virtualenv-and-pyenv – cel

+0

vedi questa domanda: [relazione tra virtualenv e pyenv] (http://stackoverflow.com/questions/29950300/what-is- the-relationship-between-virtualenv-and-pyenv) –

risposta

34

Modifica: Vale la pena ricordare pip anche qui, come conda e pip hanno somiglianze e le differenze che sono rilevanti per questo tema.

pip: il Gestore pacchetti Python.

  • Si potrebbe pensare pip come il pitone equivalente del rubino gem comando
  • pip non è incluso con il pitone di default.
  • È possibile installare Python utilizzando homebrew, che installerà automaticamente pip: brew install python
  • La versione finale di OSX non ha incluso pip per impostazione predefinita. Per aggiungere pip alla versione del sistema Mac di pitone, è possibile sudo easy_install pip
  • È possibile trovare e pubblicare i pacchetti python usando PyPI: The Python Package Index
  • Il file requirements.txt è paragonabile al rubino gemfile
  • Per creare un file di testo requisiti, pip freeze > requirements.txt
  • Nota, a questo punto, abbiamo python installato sul nostro sistema e abbiamo creato un file requirements.txt che delinea tutti i pacchetti python che sono stati installati sul tuo sistema.

pyenv: Python Version Manager

  • From the docs: pyenv consente di passare facilmente tra più versioni di Python. È semplice, non invadente e segue la tradizione UNIX di strumenti monouso che fanno bene una cosa. Questo progetto è stato biforcato da rbenv e ruby-build e modificato per Python.
  • Molte persone hesitate to use python3.
  • Se è necessario utilizzare diverse versioni di python, pyenv consente di gestirlo facilmente.

virtualenv: Python Environment Manager.

  • From the docs: Il problema di fondo di essere affrontato è una delle dipendenze e versioni, e indirettamente i permessi. Immagina di avere un'applicazione che necessita della versione 1 di LibFoo, ma un'altra applicazione richiede la versione 2. Come puoi utilizzare entrambe queste applicazioni? Se si installa tutto in /usr/lib/python2.7/site-packages (o qualunque sia la posizione standard della propria piattaforma), è facile finire in una situazione in cui si esegue l'upgrade involontario di un'applicazione che non dovrebbe essere aggiornata.
  • Per creare un virtualenv, è sufficiente richiamare virtualenv ENV, dove ENV è una directory per posizionare il nuovo ambiente virtuale.
  • Per inizializzare lo virtualenv, è necessario source ENV/bin/activate. Per smettere di usare, chiama semplicemente deactivate.
  • Una volta attivato lo virtualenv, è possibile installare tutti i requisiti di pacchetto di uno spazio di lavoro eseguendo pip install -r rispetto al file requirements.txt del progetto.

Anaconda: Gestore pacchetti + Responsabile dell'ambiente + Biblioteche scientifiche aggiuntive.

  • From the docs: Anaconda 4.2.0 include una facile installazione di Python (2.7.12, 3.4.5, e/o 3.5.2) e aggiornamenti di oltre 100 pre-costruito e testato Python scientifica e analitica pacchetti che includono NumPy, Pandas, SciPy, Matplotlib e IPython, con oltre 620 ulteriori pacchetti disponibili tramite un semplice conda install <packagename>
  • Come sviluppatore web, non ho usato Anaconda. È ~ 3 GB compresi tutti i pacchetti.
  • C'è una versione ridotta miniconda, che sembra che potrebbe essere un'opzione più semplice rispetto all'utilizzo di pip + virtualenv, anche se non ho esperienza nell'utilizzarlo personalmente.
  • Mentre conda consente di installare pacchetti, questi pacchetti sono separati dai pacchetti PyPI, quindi potrebbe essere ancora necessario utilizzare pip in aggiunta ai tipi di pacchetti che è necessario installare.

Consulta anche:

+3

Il link "conda vs pip vs virtualenv" ha restituito 404 per me, ecco quello nuovo: [conda vs pip vs virtualenv] (http://stuarteberg.github.io/ Conda-docs/_downloads/Conda-pip-virtualenv-translator.html) – veggiebenz

Problemi correlati