Crea un ambiente virtuale Python 3


13

Ho installato python3-virtualenvsu Lubuntu 15.1 usando il pacchetto Ubuntu ufficiale apt-get install python3-virtualenv. La documentazione ufficiale indica che un semplice virtualenv .nella directory del mio progetto dovrebbe essere sufficiente per creare il venv. Questo non fa nulla, perché which virtualenvnon fa nulla. (Niente da which python-virtualenve which python3-virtualenvanche).

Le informazioni sul pacchetto, una volta installate, /usr/lib/python3/dist-packages/virtualenv.pyindicano che è stato installato , quindi invoco questo in Python3. Mi dà questo:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Sì, quando guardo, tutto in ./bin è python2. Python3-virtualenv di ubuntu è un pacchetto fittizio per python2?

La documentazione ufficiale di Python dice che usa un pacchetto diverso: python3-venv . Questo sembra funzionare quando io pyvenv ., con roba python3 nella ./bindirectory.

Come posso creare con successo un virtualenv Python 3?


La patch che modifica questo comportamento in Debian. salsa.debian.org/python-team/modules/python-virtualenv/blob/… Vorrei aver capito il processo di pensiero usato quando è stata aggiunta questa patch.
Winny,

Risposte:


24

venvè uno script pratico per creare ambienti virtuali, ma non sostituisce completamente tutto ciò che virtualenvpuò fare. L'uso di uno dei due va bene per la maggior parte dei casi però. virtualenvnon è obsoleto.

python3 -m venvfunziona dopo l'installazione python3-venvperché Debian estrae alcuni script dal pacchetto Python di base. python3-virtualenvnon inserisce lo virtualenvscript nel tuo percorso per qualche motivo, ma python-virtualenvfunziona e funzionerà bene per entrambe le versioni.

Non è importante per quale versione virtualenvè installata, può produrre envs per qualsiasi versione installata passando -p pythonX(dove X è la versione). venv, essendo più semplice, creerà solo envs della versione da cui è stato eseguito ed è disponibile solo dalla 3.3.

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.