Frage

Ich habe ein Debian-System derzeit mit Python 2.5.4 läuft. Ich habe virtualenv richtig installiert ist, funktioniert alles gut. Gibt es eine Möglichkeit, dass ich eine virtualenv mit einer anderen Version von Python verwenden kann?

I 2.6.2 Python kompiliert und möchte es mit etwas virtualenv verwenden. Ist es genug, um die Binär-Datei zu überschreiben? Oder muss ich etwas ändern in Bezug auf die Bibliotheken?

War es hilfreich?

Lösung

Verwenden Sie einfach die --python (oder kurz -p) Option, wenn Ihr virtualenv Instanz Erstellen der Python zu spezifizieren ausführbare Sie verwenden möchten, z.

virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>

N. B. Für Python 3.3 oder später finden Sie in den Antwort des Aelfinn unten.

Andere Tipps

UPDATE: Für Python3.6, die unter pyvenv Skript ist veraltet. Stattdessen,   der Python Docs vorschlagen die virtuelle Umgebung mit dem folgenden Befehl erstellen:

python3 -m venv <myenvname>

python3 (3.3+), die Verwendung entweder die obige Methode oder die Skript pyvenv Befehl

pyvenv /path/to/new/virtual/environment

Bitte beachten Sie, dass venv erlaubt keine virtualenv mit anderen Versionen von Python zu schaffen. Dazu installieren und das virtualenv Paket verwenden.

Dies sind Schritte, wenn Sie auf Shared-Hosting-Umgebung und Notwendigkeit sind Python zu installieren & complie von Quelle und erstellen Venv aus Ihrer Python-Version. Für Python 2.7.9 würden Sie etwas in diese Richtung tun:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

virtuelle env

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

Natürlich kann dies auf jede Situation anwendbar, wenn Sie die genaue Umgebung replizieren möchten Sie arbeiten und implementieren auf.

virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

Es ist ein einfacher Weg,

virtualenv venv --python=python2.7

Dank eines Kommentars, das funktioniert nur, wenn Sie python2.7 auf Systemebene installiert haben (z /usr/bin/python2.7).

Ansonsten, wenn Sie mit Homebrew Sie den Pfad verwenden, können Sie zu geben, was Sie wollen.

virtualenv venv --python=/usr/local/bin/python

Sie können mit dem Pfad zu Ihrer Python-Installation finden

which python

Dies funktioniert auch mit Python 3

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

Schließlich Kondensieren an:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

Unter Windows für mich dies funktioniert:

virtualenv --python=c:\Python25\python.exe envname

ohne python.exe bekam ich WindowsError: [Error 5] Access is denied Ich habe Python2.7.1 mit virtualenv installiert 1.6.1, und ich wollte Python 2.5.2.

Mac OSX 10.6.8 (Snow Leopard):

1) Wenn Sie pip install virtualenv tun, wird der pip-Befehl mit einem Ihrer Python-Versionen verbunden sind, und virtualenv wird in dieser Version von Python installiert. Sie können tun,

 $ which pip   

, um zu sehen, welche Version von Python, die ist. Wenn Sie sehen, so etwas wie:

 $ which pip
 /usr/local/bin/pip

dann tun:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

Sie können die Python-Version in der Ausgabe sehen.

In der Standardeinstellung das wird die Version von Python, das für jede neue Umgebung verwendet wird, die Sie erstellen. Sie können jedoch eine beliebige Version von Python auf Ihrem Computer zu Verwendung in einer neuen Umgebung mit dem -p flag installiert angeben:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  
  

virtualenv my_env einen Ordner im aktuellen Verzeichnis erstellen die   wird die Python ausführbare Dateien und eine Kopie des pip enthalten   [Befehl], die Sie andere Pakete zu installieren, verwenden können.

http://docs.python-guide.org/en/ latest / dev / virtualenvs /

virtualenv nur Kopien Python von einem Speicherort auf Ihrem Computer in das neu erstellte meine_umgeb / bin / Verzeichnis.

2) Das System Python ist in /usr/bin, während die verschiedenen Python-Versionen, die ich installiert waren, die standardmäßig installiert in:

 /usr/local/bin

3) Die verschiedenen Pythons Ich haben Namen wie python2.7 oder python3.2 installiert ist, und ich kann diesen Namen verwenden, anstatt vollständige Pfade.

======== VIRTUALENVWRAPPER =========

1) Ich hatte einige Probleme virtualenvwrapper an der Arbeit. Dies ist, was ich am Ende in ~/.bash_profile setzen:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) Der -p option funktioniert anders mit virtualenvwrapper: Ich habe den vollständigen Pfad zum Python-Interpreter spezifizieren müssen in der neuen Umgebung verwendet werden (wenn ich die Standard-Python-Version nicht verwendet werden soll):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

Im Gegensatz zu virtualenv, virtualenvwrapper wird die Umwelt, die durch den $ WORKON_HOME Umgebungsvariable angegebenen Ort erstellen. Das hält alle Ihre Umgebungen an einem Ort.

Angenommen, Sie haben derzeit Python 2.7 in Ihrem virtualenv installiert. Aber wollen Verwendung von python3.2 machen, würden Sie müssen diese aktualisieren mit:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

Dann aktivieren sie virtualenv von:

$ source activate name_of_your_virtualenv

und führen Sie dann:. python --version in der Schale zu überprüfen, ob Ihre Version jetzt aktualisiert

Diese beiden Befehle sollte funktionieren.

virtualenv -p python2 myenv (Für python2)

virtualenv -p python3 myenv (Für python3)

Sie können virtualenv mit Python-Version rufen Sie wollen. Zum Beispiel:

python3 -m virtualenv venv

oder alternativ direkt auf Ihren virtualenv Weg zeigen. z.B. für Windows:

c:\Python34\Scripts\virtualenv.exe venv

Und durch Ausführen von:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Sie können die Python-Version in der virtuellen Umgebung installiert sehen

Der -p Ansatz funktioniert gut, aber Sie dürfen nicht vergessen, es jedes Mal zu verwenden. Wenn Ihr Ziel ist in der Regel auf eine neuere Version von Python zu wechseln, dass ein Schmerz ist und auch zu Fehlern führen kann.

Die andere Option ist eine Umgebungsvariable zu setzen, die die gleiche Sache wie -p tut. Setzen Sie diese über Ihre ~/.bashrc Datei oder wo auch immer Sie verwalten Umgebungsvariablen für Ihre Login-Sessions:

export VIRTUALENV_PYTHON=/path/to/desired/version

Dann virtualenv wird verwenden, dass jedes Mal, wenn Sie nicht angeben -p auf der Kommandozeile.

Für Mac (High Sierra), die virtualenv auf python3 installieren und eine virtualenv für python2 erstellen:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

Noch einfacher, mit dem Befehl Substitution python2 für Sie zu finden:

virtualenv -p $(which python2) <path/to/new/virtualenv/>

oder bei der Verwendung von virtualenvwrapper:

mkvirtualenv -p $(which python2) <env_name>

Auf der Mac I Verwendung pyenv und virtualenvwrapper. Ich hatte eine neue virtualenv zu erstellen. Sie müssen Homebrew, die ich nehme an, die Sie installiert haben, wenn Sie auf einem Mac sind, aber nur zum Spaß:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

ich meine Anforderungen auch erstes friere so konnte ich einfach wieder installiert in der neuen virtualenv mit:

pip install -r requirements.txt

In Windows für Linux-Subsystem:

  1. Erstellen Sie Umgebung für python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. Aktivieren es:

    source env/bin/activate
    

Ja , die oben genannten Antworten sind richtig und funktioniert auf Unix-basierten Systemen wie Linux & MAC OS X .

Ich habe versucht, erstellen virtualenv für Python2 & Python3 mit den folgenden Befehlen.

Hier habe ich verwendet, venv2 & venv3 als ihre Namen für Python2 & Python3 sind.

  

Python2 »

MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate        easy_install        pip2.7          python2.7
activate.csh        easy_install-2.7    python          wheel
activate.fish       pip         python-config
activate_this.py    pip2            python2
MacBook-Pro-2:~ admin$ 
  

Python3 »

MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate        easy_install        pip3.6          python3.6
activate.csh        easy_install-3.6    python          wheel
activate.fish       pip         python-config
activate_this.py    pip3            python3
MacBook-Pro-2:~ admin$ 
  

Überprüfen Python Einbauort

MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$ 

Es ist für mich gearbeitet

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

Unter Windows:

py -3.4x32 -m venv venv34

oder

py -2.6.2 -m venv venv26

Dies verwendet den py Launcher welche den richtigen Python finden Sie ausführbare Datei (vorausgesetzt, Sie haben es installiert ist).

virtualenv -p python3 myenv

Link zum Erstellen von virtualenv

Für Debian (Debian 9) Systeme im Jahr 2019 entdeckte ich eine einfache Lösung, die das Problem innerhalb der virtuellen Umgebung lösen können.

die virtuelle Umgebung Angenommen wurden über erstellt:

python3.7 -m venv myenv

hat aber nur Versionen von python2 und python2.7, und Sie müssen die bisherigen Funktionen von python3.7.

Dann einfach den Befehl:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

wird python3.7 Pakete hinzufügen, wenn sie auf dem System bereits vorhanden sind.

Das war ein Fehler mit virtualenv. Nur Ihre pip Upgrade sollte das Update sein.

pip install --upgrade virtualenv

Es funktionierte für mich auf Fenster mit Python 2-Installation:

  1. Schritt 1: Installieren Sie Python 3-Version.
  2. Schritt 2: Erstellen Sie einen env-Ordner für     die virtuelle Umgebung.
  3. Schritt 3: c: \ Python37 \ python -m Venv     c. \ path \ to \ env

Dies ist, wie ich auf meiner vorhandenen Python 2 Installation Python 3 virtuelle Umgebung erstellt.

Ich benutze pyenv meine Python-Version zu verwalten.

pyenv install 3.7.3
pyenv local 3.7.3

Überprüfen Sie Ihre Python-Version:

$ python --version
Python 3.7.3

Erstellen der virtuellen Umgebung mit Venv :

python -m venv .

Aktivieren Sie dann die virtuelle Umgebung:

source bin/activate

Überprüfen Sie Ihre Python-Version:

$ python --version
Python 3.7.3

Sie müssen möglicherweise die vorherige virtuelle Umgebung

entfernen
rm -rf bin

Sie können es tun, indem dies zu tun:

virtualenv -p python3 .

Ja, Sie brauchen nur die andere Version von Python, installieren und für die Position der anderen Version von Python in Ihrem Befehl wie definieren:

  
    
      

virtualenv / home / Gehaltsabrechnung / Dokumente / env -p / usr / bin / python3

    
  

Hier ist die stepbystep wie die virtuelle Umgebung in Visual Studio-Code Ordner zu erstellen: Ich verwendete Powershell (Administrator-Modus):
 1. Ich erstelle ein VSCode Ordner - „D: \ Code_Python_VE“, wo ich virtuelle Umgebung erstellen möchten
.  2. Als nächstes ich den Befehl - „PIP3 installieren virtualenv“. (D: \ Code_Python_VE> PIP3 installieren virtualenv)  3. D: \ Code_Python_VE> python3 -m Venv project_env
 4. D: \ Code_Python_VE> project_env \ Scripts \ activate.bat
 5. D: \ Code_Python_VE> ls - Das wird ein neues Verzeichnis "project_env" Liste
.  6. D: \ Code_Python_VE> Code. Das wird Visual Studio-Code starten. Stellen Sie sicher, dass der Befehl (Code.).
 Erstellen launch.jason 7. mit folgendem Inhalt:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "python",
            "request": "launch",
            "name": "Python: Current File (Integrated Terminal 1)",
            "program": "${file}"
        },
        {
            "name": "Python: Current File (Integrated Terminal 2)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
    ]
}

(Bitte sehen Sie, wie man Debug-Fenster gehen und neue Konfiguration in VS-Code hinzufügen).

  1. Drücken Sie F1 in Visual Studio-Code und der Befehl Palette öffnet - Wählen Sie Python-Interpreter und wählen Sie die virtuelle Umgebung project_env.
  2. Fügen Sie test.py Datei mit einer Anweisung print ( "Hallo Welt").
  3. Dieses Programm ausführen.
  4. In Visual Studio-Code-Terminal -
    (Project_env) d: \ Code_Python_VE> python -m pip installieren --upgrade
    Ich hoffe, das hilft.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top