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:
Welche Installations- / Konfigurationsoptionen suche ich?
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:
mkvirtualenv --python=PYTHON_EXE
erstellt ein virtualenv mit einer bestimmten ausführbaren Python-Datei (muss keine systemgepackte Version sein) allvirtualenv pip install -U pip
aktualisiert Pip in allen virtualenvs 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.
Basierend auf Walker Hale IVs Antwort auf eine ähnliche (aber eindeutige!)) Frage, dazu gibt es zwei Schlüssel:
Der Workflow ist also:
Anmerkungen:
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%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.
Tags und Links python ubuntu pip virtualenv distribute