2016-03-07 5 views
6

Ich habe ein Projekt genannt ABC, ich habe eine conda env gerade dafür in der Falte ~/anaconda/envs/ABC, ich glaube, dass es ein venv ist, und ich möchte einige spezifische Pakete von verwenden globale Website-Pakete.Wie man globale Aufstellungsort-Pakete in conda env wiederbenutzt

Für normale Python-Installation kann es getan werden, die no-global-site-package.txt aus dem venv-Ordner zu entfernen, oder indem man das venv auf global-site-packages setzt, aber ich habe keine Entsprechung gefunden Ansatz, dies in Anaconda zu tun. Die Online-Dokumentation hat auch keine Antwort.

Wie geht das bei Anaconda?

Antwort

0

Sie könnten die Umgebungsvariable PYTHONPATH verwenden. Zum Beispiel

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

würde jeder Umgebung Zugriff auf alle Bibliotheken in der Anaconda-Verteilung geben. Irgendwie schlägt der Zweck der Umgebungen jedoch fehl. Und wenn Sie dann Zugriff auf eine Bibliothek, die Sie auch mit haus Gebräu installiert werden soll, würden Sie hinzufügen

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

Ich denke, Sie beantworten OP Frage überhaupt nicht. – Dominik

+0

Nun, Dominick, kannst du es dir erklären? – aquagremlin

1

Sie dies nicht explizit in Conda tun können, in denen das Prinzip ist, dass ENVs völlig getrennt sind.

aber die aktuelle Standardverhalten von conda ist alle globalen Benutzer-Site-Pakete von innerhalb Umgebungen zu sehen, zu ermöglichen, wie in this question erwähnt. Mit dem Standardverhalten können Sie also tun, was Sie möchten, aber es gibt keine Möglichkeit, nur "bestimmte" globale Pakete wie gewünscht zuzulassen. Dieses Verhalten hat one oder two Probleme verursacht. um es zu vermeiden, export PYTHONNOUSERSITE=1 vor source activate <your env>. Beachten Sie, dass die Entwickler planen, das Standardverhalten so zu ändern, dass PYTHONNOUSERSITE=1 in 4.4.0 festgelegt wird (für die zweite verknüpfte Ausgabe).