2016-08-08 8 views
1

Ich bin fertig mit einem Projekt, und es wurde auf Git geschoben, aber der Client will VENV. Ich habe bereits venv zu arbeiten und erstellt eine requirements.txt Datei.Best Practice, um Python-Anwendung zu implementieren, um eine bestimmte Version von Python mit venv zu verwenden

Meine Frage ist, was die beste Vorgehensweise für einen Bereitstellungsworkflow ist. Bisher habe ich das als Bereitstellungsworkflow erstellt:

git clone ssh://myawesomerepo 
cd myawesomerepo 
pip install virtualenv 
venv -python=python3.5 env 
source env/bin/activate 
pip install -r requirements.txt 
python run.py 

Ist dies der richtige Workflow?

Angenommen, dass wir nicht wissen, welche Version von Python der Client hat. Mein Projekt für Python geschrieben ist 3,5, und wenn der Kunde hat 2.7 wird diese Arbeit? *

+0

Workflow scheint gut, solange Sie nur den Code in Python3.5 auf Linux ausführen möchten –

+0

Ya, OS ist immer Linux. Aber dieses Projekt req. Python 3.5 deshalb habe ich -python = python3.5 hinzugefügt. Wenn der Benutzer Python 2.7 hat, wird Python 3.5 lokal installieren? – c3cris

+0

Sie müssten python3.5 installiert haben, um ein Python3.5 Venv zu erstellen. Alternativen dazu, dass niemand mehr zusätzliche Dinge installieren muss, sind das Wrappen Ihres Projekts in einen Docker-Container. –

Antwort

1

Ich neige dazu, Ihnen die Anaconda Paket-Manager verwenden, anstatt Venv, einer der netten Features ist, dass, wenn Sie laufen

conda create -n myenv python=3.5 

wird Python 3.5 herunterladen und installieren, auch wenn es nicht bereits auf dem System installiert ist.

+0

Danke, ich werde es lesen. Das Problem ist der vom Kunden angeforderte VENV. Ich habe VENV getestet und es funktionierte mit mehreren Python-Binärdateien, die nicht installiert waren. I.e. 2.6, 3.4, aber das sind Downgrades. – c3cris