2016-03-07 13 views
6

Ho un progetto chiamato ABC, ho un conda env solo per questo nella piega ~/anaconda/envs/ABC, credo che sia un venv, e voglio usare alcuni pacchetti specifici dal pacchetti di siti globali.come riutilizzare i pacchetti globali del sito in conda env

Per la normale installazione di Python, è possibile rimuovere il file no-global-site-package.txt dalla cartella venv o impostare venv per utilizzare i pacchetti del sito globale, ma non ho trovato alcun equivalente approccio per farlo in Anaconda. La documentazione online non ha risposta neanche.

Come fare questo per Anaconda?

risposta

0

È possibile utilizzare la variabile di ambiente PYTHONPATH. Ad esempio

export PYTHONPATH="/Users/me/anaconda/lib/python2.7/site-packages:$PYTHONPATH" 

darebbe ad ogni ambiente l'accesso a tutte le librerie nella distribuzione anaconda. Una sorta di sconfitte lo scopo degli ambienti però. E se poi si vuole accedere a una libreria è stato installato con birra fatta in casa come bene, si dovrebbe aggiungere

export PYTHONPATH=/usr/local/Cellar/another_package/lib/python2.7/site-packages:$PYTHONPATH 
+2

Penso che tu non stia rispondendo alla domanda OPP. – Dominik

+0

Bene Dominick, puoi spiegarti? – aquagremlin

1

non si può fare questo in modo esplicito nel Conda, dove il principio è che ENV sono completamente separate.

ma il comportamento predefinito corrente di conda è quello di permettere tutti utente site-packages globali per essere visto dal di dentro gli ambienti, come detto in this question. quindi, il comportamento predefinito ti consentirà di fare ciò che desideri, ma non è possibile autorizzare solo "alcuni specifici" pacchetti globali come richiesto.

questo comportamento ha causato problemi one o two. per evitarlo, export PYTHONNOUSERSITE=1 prima del source activate <your env>. si noti che gli sviluppatori stanno pianificando di modificare il comportamento predefinito per impostare PYTHONNOUSERSITE=1 in 4.4.0 (per il secondo problema collegato).