2014-09-24 15 views
11

Ho un python virtualenv in esecuzione 2.7.7. Ha una serie piuttosto ampia di librerie che supportano un insieme piuttosto complicato di moduli proprietari. In altre parole, il virtualenv deve mantenere la sua integrità. Questo è ovviamente il punto di vista di virtualenv.Anaconda e VirtualEnv

Recentemente, ho riscontrato una serie di problemi che sono stati risolti molto facilmente utilizzando Anaconda. L'ho provato in un ambiente di test e ha funzionato abbastanza bene. Ora ho il compito di incorporare questa nuova configurazione nella produzione. Non mi è chiaro come incorporare Anaconda in un virtualenv, o se sia addirittura una buona idea. In effetti, mi sembra quasi come se dovessi usare l'installazione di anaconda come nuova fonte e scomporre la vecchia virtualenv ... unendo le librerie contenute nella conda.

Qualcuno ha una raccomandazione sull'approccio migliore? Se è necessario fondere gli ambienti, qualcuno può indicare una spiegazione su come procedere?

risposta

8

Non ha davvero senso unire Anaconda e una virtualenv, poiché Anaconda è un'installazione completamente indipendente di Python. È possibile farlo, in genere impostando il PYTHONPATH, ma le cose hanno una buona possibilità di rottura quando si fa questo genere di cose, e mi sento di raccomandare contro di esso.

Se ci sono librerie nel tuo virtualenv, puoi usarle con Anaconda creando pacchetti di conda per loro. Potrebbero già disporre di pacchetti conda (cercare con conda search e cercare https://binstar.org/). Altrimenti, puoi costruire un pacchetto usando una ricetta conda. Vedere http://conda.pydata.org/docs/build.html e https://github.com/conda/conda-recipes per alcune ricette di esempio.

+2

Stavo suggerendo che anaconda e virtualenv si fondono. Stavo suggerendo di unire le librerie proprietarie una volta mantenute nella virtualenv in anaconda, quindi di buttare via il virtualenv. Non capisco quale sia il motivo di creare pacchetti di conda. Le librerie sono già moduli python standard. Non si può semplicemente abbandonare i moduli Python? – melchoir55

+2

Il vantaggio di creare pacchetti di conda è che puoi seguirli con conda. Non è un requisito, semplifica le cose a lungo termine. – asmeurer