2012-05-09 23 views
6

Ich möchte ein virtualenv ohne globale Python-Pakete erstellen, aber mit der scipy-Verteilung, die geteilt wird; Die Installation von scipy dauert eine ganze Weile, und ich möchte nicht zu oft durch die Bewegungen gehen.add2virtualenv (virtualenv Wrapper) funktioniert nicht mit scipy

So laufe ich add2virtualenv /Library/Python/2.7/site-packages/scipy und nach dem Ausführen von add2virtualenv zeigt es das Verzeichnis hinzugefügt wird. (Ich überprüfe, es ist das richtige Verzeichnis). Dann stelle ich workon myfile aus, um sicherzustellen, dass die Arbeitsverzeichnisse neu geladen werden. Wenn ich versuche, scipy zu laden, ist es jedoch ein ImportError: No module named scipy. Das ist unerwartet.

Hat jemand eine globale scipy in einem nicht-globalen-sitepackages virtualenv verwendet?

+1

add2virtualenv fügt das angegebene Verzeichnis zu PYTHONPATH hinzu. Sie sollten daher Ihr gesamtes Site-Paket hinzufügen, um scipy zu importieren. – rubik

+1

Eine alternative Lösung sollte symplinking scipy-Verzeichnis in virtual env's site-package sein – rubik

+0

Vielen Dank. Also habe ich die Art, wie add2virtualenv verwendet werden sollte, falsch interpretiert. Gibt es keinen Befehl, der das Hinzufügen eines bestimmten Pakets erleichtert? (außer symlinking?) – Okke

Antwort

3

Also, das eigentliche Problem hier ist, dass das Verzeichnis einschließlich der zu importierenden Pakete verwendet werden muss, anstelle des spezifischen Pakets. Das heißt, statt

add2virtualenv /Library/Python/2.7/site-packages/scipy 

Es sollte

add2virtualenv /Library/Python/2.7/site-packages 

Vorsicht: Diese Lösung hat den Nachteil, dass Sie nicht nur enthalten scipy, aber alle anderen Pakete in /Library/Python/2.7/site-packages.


Eine alternative, platz efficent Lösung SymLink scipy Verzeichnis innerhalb der virtuellen env-Standort-Paket werden könnte. Dies kann getan werden, in der virtuellen env durch:

cdsitepackages 
ln -s /Library/Python/2.7/site-packages/scipy scipy 

Alle Kredite gehen zu @rubik (siehe Kommentare)

Check out this Antwort Ihre Website-Pakete Weg zu finden falls es anders ist als das hier verwendete.