Wie kann ich mehrere non-package Distribute / virtualenv / pip-Ökosysteme unter Ubuntu korrekt installieren?

8

Ich entwickle Python-Anwendungen in Ubuntu. Ich möchte ein Distribute / virtualenv / pip-Ökosystem einrichten verwalte meine Python-Pakete unabhängig von irgendwelchen System-Python-Paketen (die ich in Synaptic verwalte, oder vielmehr lasse ich das System sie für mich verwalten).

Ich könnte einfach die Python-setuptools, python-virtualenv und python-pip System-Pakete installieren und auf meinem fröhlichen Weg sein, aber ich möchte auch die neuesten / spezifischen Versionen von Distribute, virtualenv und pip bekommen können. Es gibt keine PPAs für diese, also muss ich sie manuell installieren.

Eine letzte Komplikation ist, dass ich das für mehrere Versionen von Python machen kann. Das heißt, ein Ökosystem für python2.6, ein anderes für python, ein anderes für python3 oder ein anderes 64-bit System für chrooted 32-bit Python .

Ich vermute, dass der Prozess etwa so aussehen würde:

  • Mit Python X installiere meine eigene Kopie von Distribute an einen Ort in meinem Home-Ordner
  • Verwenden von Indie Distribute, easy_install pip
  • Installieren Sie virtulenv
  • mithilfe von indie pip
  • Erstellen Sie mithilfe von indie virtualenv eine virtuelle Umgebung
  • Aktivieren Sie die virtuelle Umgebung, installieren Sie Pakete
  • Wiederholen Sie dies für Python Y, Z und Q

Welche Installations- / Konfigurationsoptionen suche ich?

    
d3vid 25.07.2011, 05:50
quelle

3 Antworten

0

Bei den Beiträgen von JF Sebastian und nealmcb verwende ich tatsächlich meine systemgepackte Version von virtualenvwrapper (verfügbar unter Ubuntu 12.04 und später) ).

  

virtualenvwrapper ist eine Reihe von Erweiterungen zu Ian Bickings virtualenv-Tool. Die Erweiterungen enthalten Wrapper zum Erstellen und Löschen virtueller Umgebungen und verwalten Ihren Entwicklungsworkflow auf andere Weise. So können Sie mehr als ein Projekt gleichzeitig bearbeiten, ohne Konflikte in ihren Abhängigkeiten zu verursachen.

Die wichtigsten Funktionen, die ich (als Antwort auf diese Frage) verwende, sind:

Die erwähnten Umgebungsvariablen JFS sind in der Tat nützlich, um mit: PIP_DOWNLOAD_CACHE, VIRTUALENV_USE_DISTRIBUTE, WORKON_HOME, VIRTUALENVWRAPPER_PYTHON zu experimentieren.

Der einzige Grund, virtualenv selbst zu aktualisieren, besteht darin, die neueste Version von setuptools (früher bekannt als Distribute, früher bekannt als setuptools) zu erhalten. Ich hatte noch keine Notwendigkeit, dies zu tun, aber ich vermute, es wäre am einfachsten, mit einem neuen virtualenv zu beginnen und upgrade zuerst Distribute / setuptools, dann upgrade pip, dann installiere andere Bibliotheken.

Wenn eine neue Version von virtualenv unbedingt notwendig ist, sollte eine Bootstrap-Erstellung vorgenommen werden.

    
d3vid 24.10.2013, 10:14
quelle
7

Basierend auf Walker Hale IVs Antwort auf eine ähnliche (aber eindeutige!)) Frage, dazu gibt es zwei Schlüssel:

  • Sie müssen distribute und pip nicht installieren, da diese automatisch in einer neuen virtuellen Umgebung enthalten sind (und Sie vermutlich nur die Versionen wollen, die mit virtualenv getestet wurden)
  • Sie können den virtualenv-Quellcode verwenden, um eine neue virtuelle Umgebung zu erstellen, anstatt die systeminstallierte Version von virtualenv
  • zu verwenden

Der Workflow ist also:

  • installiere Python Version X auf deinem System
  • Download virtualenv Quellcode Version Q (wahrscheinlich die neueste)
  • Erstellen Sie eine neue virtuelle Umgebung mit Python X und virtualenv Q
  • Ihr neues VE führt jetzt Python X und die neuesten stabilen Versionen von pip und distribute
  • aus
  • pip installiert alle anderen Pakete
  • easy_install alle anderen Pakete, die Sie nicht pip installieren können

Anmerkungen:

  • In Ihrer neuen virtuellen Umgebung können Sie neue (oder alte) Versionen von distribute, pip oder virtualenv installieren. (Ich denke)
  • Ich benutze die Technik von WH4 nicht, um eine virtuelle Bootstrap-Umgebung zu erstellen. Stattdessen erstelle ich die neue virtuelle Umgebung jedes Mal aus der Quelle virtualenv.
  • Diese Technik sollte auf jedem Betriebssystem verwendet werden können.
  • Wenn ich das einem neuen Vertreter des gesamten Distribute / pip / virtualenv-Ökosystem-Konzepts erklären würde, würde ich es auf eine virtualenv-zentrische Art erklären.

Ich habe ein Bash-Skript geschrieben, das die Grundlagen in Ubuntu macht:

%Vor%

Der Ausgang sieht ungefähr so ​​aus (bei ausgeschaltetem Download und aktivierter Deaktivierung):

%Vor%     
d3vid 29.07.2011 15:04
quelle
0

Wie von @ j.f.sebastian bemerkt, macht virtualenvwrapper vieles oder alles, wonach Sie fragen.

Ссылка

  

virtualenvwrapper ist eine Reihe von Erweiterungen zu Ian Bicking's virtualenv   Werkzeug. Die Erweiterungen enthalten Wrapper zum Erstellen und Löschen   virtuelle Umgebungen und andere Verwaltung Ihres Entwicklungsworkflows,   Es ist einfacher, an mehreren Projekten gleichzeitig zu arbeiten   Konflikte in ihre Abhängigkeiten einführen.

    
nealmcb 23.10.2013 20:46
quelle