Die Standard-Python-Version in meinem System ist 2.6.6. Ich habe virtualenv installiert, und ich möchte, dass der Standardvirtualenv 2.7 ist, wenn ich ein Terminal öffne.Aktivieren Sie eine Standard-virtualenv beim Starten eines Terminals (mit bashrc)
Also, habe ich den folgenden Befehl in der Datei ~/.bashrc:
source $HOME/virtualenvs/py2.7/bin/activate
Nun, wenn ich einen Terminal, indem Sie auf das Symbol in Gnome-Umgebung zu starten (dh habe ich bereits in die Maschine angemeldet und öffnen Sie ein neues Terminalfenster (xterm) innerhalb Gnome), sieht die Shell-Symbol wie folgt aus:
(py2.7)(py2.7)
Es sieht aus wie irgendwie habe ich ein virtualenv in einem anderen virtualenv. Noch schlimmer ist, kann ich nur den einen virtualenv deaktivieren, aber nicht die anderen, wie im Folgenden zeigen:
(py2.7)(py2.7)deactivate
(py2.7)python
Python 2.7.5 (default, Jun 28 2013, 14:53:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(py2.7)deactivate
bash: deactivate: command not found
(py2.7)python
Python 2.7.5 (default, Jun 28 2013, 14:53:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Wie Sie sehen können, obwohl der Standard-Python in meinem System 2.6 ist, ich bin an der virtualenv (2.7) stecken
Wenn ich mit Strg + Alt + F2 zu einem Text virtuellen Konsole wechseln und mich einloggen, sieht es normal aus.
(py2.7)[[email protected] ~]$
Ich kann deaktivieren und zurück zum Standard-Python 2.6 des Systems.
(py2.7)[[email protected] ~]$ python
Python 2.7.5 (default, Jun 28 2013, 14:53:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(py2.7)[[email protected] ~]$ deactivate
[[email protected] ~]$ python
Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Was ist das Problem? Kann ich den Standardvirtualenv auf 2.7 setzen, wenn ich ein Terminal in Gnome öffne?
Meine Linux-Distribution ist RedHat 6.
sourcing bin/activate ändert Ihren $ PATH, so dass der erste Eintrag das bin/directory des virtualenv ist. Das ist alles, was es tut; es ist nur eine Bequemlichkeit. Versuchen Sie, die Sourcing-Direktive zu überspringen und spielen Sie stattdessen mit der PATH-Umgebungsvariablen herum. Sie sehen möglicherweise die Probleme, die Sie sehen, wenn Sie Ihre .bashrc zweimal beziehen ... –
PS. Ich habe die Sourcing-Direktive am Ende meiner '.bashrc' hinzugefügt und ein neues Bash-Terminal gestartet und es verhält sich wie erwartet (d. H. Es funktioniert). Getestet auf Ubuntu 12.04. Was meinst du mit "Klicken auf das Symbol in Gnome-Umgebung"? –
Sie brauchen [virtualenvwrapper] (http://virtualenvwrapper.readthedocs.org/en/latest/) in Ihrem Leben –