2014-09-24 10 views
11

Ich habe eine virtualenv Python 2.7.7. Es hat einen ziemlich umfangreichen Satz von Bibliotheken, die eine ziemlich komplizierte Reihe von proprietären Modulen unterstützen. Mit anderen Worten, der Virtualenv muss seine Integrität bewahren. Das ist natürlich der springende Punkt von virtualenv.Anaconda und VirtualEnv

Kürzlich stieß ich auf eine Reihe von Problemen, die mit Anaconda sehr leicht gelöst werden können. Ich habe es in einer Testumgebung ausprobiert und es hat ganz gut funktioniert. Jetzt habe ich die Aufgabe, diese neue Konfiguration in die Produktion zu integrieren. Mir ist nicht klar, wie man Anaconda in ein virtualenv einbaut, oder ob das überhaupt eine gute Idee ist. In der Tat scheint es mir fast so, als würde ich die Anaconda-Installation als neue Quelle verwenden und das alte virtualenv zerstören ... die Bibliotheken, die es in der Conda hielt, zusammenführen.

Hat jemand eine Empfehlung für den besten Ansatz? Wenn das Zusammenführen der Umgebungen erforderlich ist, kann irgendjemand auf eine Erklärung hinweisen, wie man vorgeht?

Antwort

8

Es macht nicht wirklich Sinn, Anaconda und ein virtualenv zu verschmelzen, da Anaconda eine völlig unabhängige Installation von Python ist. Sie können es tun, in der Regel durch die Einstellung Ihrer PYTHONPATH, aber die Dinge haben eine gute Chance zu brechen, wenn Sie diese Art von Sache tun, und ich würde empfehlen, dagegen.

Wenn in Ihrem virtualenv Bibliotheken vorhanden sind, können Sie diese mit Anaconda verwenden, indem Sie für sie Conda-Pakete erstellen. Möglicherweise haben sie bereits Condapakete (Suche mit conda search und Suche https://binstar.org/). Andernfalls können Sie ein Paket mit einem Conda-Rezept erstellen. Für einige Beispielrezepte siehe http://conda.pydata.org/docs/build.html und https://github.com/conda/conda-recipes.

+2

Ich schlug vor, dass Anakonda und virtualenv zusammenführen. Ich schlug vor, die proprietären Bibliotheken, die einmal im Virtualenv gehalten wurden, in Anakonda zu verschmelzen und dann den Virtualenv wegzuwerfen. Ich verstehe nicht, was es bedeutet, Conda-Pakete zu machen. Die Bibliotheken sind bereits Standard-Python-Module. Kann man nicht einfach Python-Module einwerfen? – melchoir55

+2

Der Vorteil von Conda-Paketen ist, dass Sie sie mit Conda verfolgen können. Es ist keine Voraussetzung, es macht die Dinge auf lange Sicht einfach einfacher. – asmeurer