2016-07-10 24 views
4

Ich habe die folgenden Zeilen zu meinem Bash hinzugefügt, aber mkproject erstellt weiter Python 2.7 Ordner in das virtuelle env, deshalb muss ich immer noch -p python3 verwenden, was ich nicht tun möchte.Wie erzwinge 'mkproject' (virtualenvwrapper), python3 als Standard zu verwenden?

export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh 
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 
source /usr/local/bin/virtualenvwrapper_lazy.sh 
+1

'export VIRTUALENVWRAPPER_VIRTUALENV = virtualenv3'? – grochmal

+0

Wie könnte ich "virtualenv3" definieren? – anquadros

+2

Um 'virtualenv' für' python2' und 'python3' zu verwenden, benötigen Sie zwei' virtualenv' Skripte. Die erste Zeile von 'virtualenv' ist oft' #!/Usr/bin/python2' oder '#!/Usr/bin/python3' (das Eingabeskript für virtualenv ist überraschend kurz). Mehrere Distributionen machen tatsächlich zwei Pakete "virtualenv2" und "vraulenv3". Aber, da du auf einem Mac bist, bekommst du das durch 'brew', glaube ich, deshalb kannst du' virtualenv' -> 'virtualenv3' sicher kopieren und die erste Zeile in' #!/Usr/bin/python3' ändern – grochmal

Antwort

2

virtualenvwrapper versteht die VIRTUALENVWRAPPER_VIRTUALENV Umgebungsvariable, müssen Sie es auf die virtualenv entsprechend der Python-Version setzen Sie verwenden. Zum Beispiel:

export VIRTUALENVWRAPPER_VIRTUALENV=virtualenv3 

Dies ist erforderlich, da virtualenvwrappervirtualenv als Shell-Skript ausgeführt (ohne python2python3 oder in dem vor dem Befehl hinzuzufügen).

Auf diese Weise wird das virtualenv Skript mit dem in seinem Shebang definierten Interpreter ausgeführt (#!).

Die meisten Linux-Distributionen bieten zwei Pakete: virtualenv2 und virtualenv3 jeweils ein Skript:

virtualenv2:

#!/usr/bin/python2 
import virtualenv 
virtualenv.main() 

virtualenv3:

#!/usr/bin/python3 
import virtualenv 
virtualenv.main() 

Auf einem Mac Sie brew für die python verwenden Installation. Daher ist nichts falsch daran, das Skript virtualenv in zwei Instanzen zu kopieren: vritualenv2 und virtualenv3 und ändern Sie den Shebang in die richtige Python-Version.

(Sie müssen die virtualenv Eier, durch pip für jede Python-Version installieren.)

0

ich einen Alias ​​in der .bashrc-Datei definiert den mkproject Befehl zu überschreiben python3 die standardmäßig verwendet:

alias mkproject='mkproject --python=/usr/bin/python3'