Gunakan versi Python yang berbeda dengan virtualenv

1116

Saya memiliki sistem Debian yang saat ini berjalan dengan python 2.5.4. Saya menginstal virtualenv dengan benar, semuanya bekerja dengan baik. Apakah ada kemungkinan saya bisa menggunakan virtualenv dengan versi Python yang berbeda?

Saya mengkompilasi Python 2.6.2 dan ingin menggunakannya dengan beberapa virtualenv. Apakah itu cukup untuk menimpa file biner? Atau apakah saya harus mengubah sesuatu sehubungan dengan perpustakaan?

Ulf
sumber
8
Hanya menyebutkan bahwa Anda dapat melakukan ini menggunakan virtualenvwrapper juga.
bias
13
Perlu dicatat bahwa dalam python 3, ada setara virtualenv built-in: venv .
naught101
2
Apakah tidak mungkin untuk mengganti versi python di lingkungan saat ini tanpa membuat lingkungan baru?
Charlie Parker

Jawaban:

1542

Cukup gunakan opsi --python(atau pendek -p) saat membuat instance virtualenv Anda untuk menentukan executable Python yang ingin Anda gunakan, misalnya:

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

NB Untuk Python 3.3 atau lebih baru, lihat jawaban The Aelfinn di bawah ini.

Daniel Roseman
sumber
160
Saya pikir saya akan menyebutkan bahwa ini bekerja untuk virtualenvwrappers juga: mkvirtualenv -p python2.6 env
bias
65
Saya kehilangan sesuatu di sini - tidakkah ini mengharuskan 2.6 sudah diinstal pada sistem? Saya pikir intinya dari virtualenv adalah saya bisa memiliki versi python selain yang utama (dalam kasus saya, 2.4 pada CentOS). Saya berasumsi saya bisa menginstal virtualenv, kemudian menginstal Python 2.6 di bawahnya untuk paket-paket di env untuk memanfaatkan?
John C
42
@ John ya, kamu. Itu bukan titik virtualenv: titik itu adalah untuk menciptakan lingkungan berpasir untuk Python. Anda harus menginstal versi itu terlebih dahulu - Anda dapat menginstalnya secara lokal untuk pengguna Anda.
Daniel Roseman
8
@ JohnC Anda dapat menggunakan pythonbrew untuk menginstal ular piton alternatif.
ashwood
54
Jika Anda sedikit malas:virtualenv -p `which python2.6` <path/to/new/virtualenv>
merintis
294

Sejak Python 3, Python Docs menyarankan untuk membuat lingkungan virtual dengan perintah berikut:

python3 -m venv <myenvname>

Harap dicatat bahwa venvtidak mengizinkan menciptakan lingkungan virtual dengan versi Python lainnya. Untuk itu, instal dan gunakanvirtualenv paket .


Informasi usang

The pyvenv Script dapat digunakan untuk menciptakan lingkungan virtual

pyvenv /path/to/new/virtual/environment

tetapi telah ditinggalkan sejak Python 3.6.

Aelfinn
sumber
8
Senang Anda menunjukkan hal itu, perlu lebih banyak promosi. Satu hal kecil: mereka sekarang menganjurkan menjalankannya python3 -m venv <envname>untuk mencegah kebutuhan naskah rintisan untuk semuanya.
Paul Everitt
6
Sebenarnya pyvenvskrip tersebut tidak digunakan lagi dalam Python 3.6+, meskipun venvmodul yang mendasarinya tidak. Jadi gunakan python 3 -m venv <myenvname>seperti yang dikatakan @PaulEveritt.
RichVel
5
Diperingatkan bahwa pyvenvatau python3 -m venv ...TIDAK menginstal python-configskrip. Ini berarti bahwa bahkan setelah mengaktifkan lingkungan Python3 Anda, seluruh sistem python-configakan dipanggil dengan konsekuensi yang membingungkan. Lihat laporan bug ini dari 2011 github.com/pypa/virtualenv/issues/169 dan pertanyaan saya stackoverflow.com/questions/42020937/…
Laryx Decidua
1
"Harap dicatat bahwa venvtidak mengizinkan membuat virtualenv dengan versi Python lainnya." - Apakah kamu yakin ini benar? Tampaknya berfungsi dengan baik bagi saya jika saya membuatnya dengan versi Python tertentu, misalnya python3.5 -m venv <myenvname>(asalkan saya memiliki versi Python tersedia).
Dominick Pastore
5
Mengonfirmasi bahwa pengamatan @ Nick berfungsi: Cara untuk membuat venvdengan versi Python tertentu adalah dengan menggunakan versi itu ketika mengaturnya. Misalnya:python3.5 -m venv venv
tanius
183

Ini adalah langkah-langkah yang dapat Anda ikuti ketika Anda berada di lingkungan hosting bersama dan perlu menginstal & kompilasi Python dari sumber dan kemudian buat venvdari versi Python Anda. Untuk Python 2.7.9. Anda akan melakukan sesuatu seperti ini:

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

virtual 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   

Biasanya, ini dapat diterapkan pada situasi apa pun di mana Anda ingin meniru lingkungan tempat Anda bekerja dan menyebarkannya.

zzart
sumber
2
Bisakah Anda menguraikan mengapa melakukannya seperti itu: Mengapa menginstal python secara lokal? Dan yang lebih penting mengapa menginstal virtualenv menggunakan versi python yang ingin Anda gunakan dengannya ?
lajarre
15
Tentu. Jika Anda berada di lingkungan hosting virtual dan server menyediakan versi python lama yang tidak Anda sukai - itulah skenario kasus saya. Juga jika Anda kebetulan mengembangkan proyek di server yang berbeda dan Anda ingin meniru lingkungan ini di mesin lokal Anda .... Virtualenv membuat tautan keras ke python libs. jadi sangat penting dengan versi python yang Anda gunakan untuk menginstal dan membuat Virtualenv.
zzart
6
Atau jika Anda seperti saya dan sedang berada di mesin terkunci di tempat kerja tanpa hak sudo. Salinan pustaka, database SQL, bahasa, dan kompiler lokal berlimpah! Terima kasih!
zachd1_618
4
Di bawah virtualenv 1.9.1, saya harus menggunakan ~/.localpython/bin/virtualenvalih-alih hanya virtualenvuntuk pengaturan agar selesai tanpa kesalahan. Selain itu, gunakan source ve/bin/activatesebagai ganti source activate.
Saul
3
Alasan lain untuk melakukan ini adalah untuk mencoba beta sebelum mereka pergi untuk memastikan proyek Anda dan dependensi mereka tetap bekerja tanpa risiko merusak manajemen paket Anda dengan mengalahkan sesuatu dan meninggalkan file yang menggantung di semua tempat. Saya suka jawaban ini.
RobotHumans
103
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
iElectric
sumber
2
Lihat jawaban saya di bawah ini untuk solusi yang setara menggunakan variabel lingkungan. Pendekatan itu berarti Anda tidak harus ingat untuk menggunakannya -p.
Chris Johnson
5
Apakah tidak ada solusi yang beralih di antara versi python tanpa perlu membuat lingkungan virtual baru?
Charlie Parker
3
Apakah ini berfungsi, jika Anda ingin menginstal versi python yang tidak diinstal pada sistem Anda? Katakanlah Anda ingin menguji python3.6tetapi tidak ingin menyentuh python3.5diinstal pada komputer Anda?
alpha_989
1
@ alpha_989 apakah Anda menemukan solusi untuk melakukan ini?
Daniil Mashkin
97

Ada cara yang lebih mudah,

virtualenv venv --python=python2.7

Berkat komentar, ini hanya berfungsi jika Anda memasang python2.7 di tingkat sistem (mis. /Usr/bin/python2.7).

Jika tidak, jika Anda menggunakan homebrew, Anda dapat menggunakan path untuk memberikan apa yang Anda inginkan.

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

Anda dapat menemukan path ke instalasi python Anda dengan

which python

Ini juga akan bekerja dengan python 3.

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

Akhirnya kondensasi ke:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`
Daniel Lee
sumber
1
FYI, hanya berfungsi jika Anda memasang python2.7 di level sistem (mis.
/Usr/bin/python2.7
Saya bisa melakukan ini virtualenv venv --python=python3.6juga
Jordan
Anda sebenarnya dapat menjatuhkan nomor versi minor. virtualenv env --python=python2
Anshul
Itu solusi yang tepat, setelah Anda memiliki semua versi, Anda tertarik untuk justing menggunakan alias bukan path lengkap
user1767754
Di Windows, ini bekerja seperti pesona dengan perubahan kecil: di virtualenv venv --python=<insert_your_python_version_here>mana <insert_your_python_version_here>dalam kasus sayaC:\Python\Python368\python.exe
abautista
70

Di bawah Windows untuk saya ini berfungsi:

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

tanpa python.exesaya punya WindowsError: [Error 5] Access is denied saya punya Python2.7.1 diinstal dengan virtualenv 1.6.1, dan saya ingin python 2.5.2.

balazs
sumber
32

Mac OSX 10.6.8 (Snow Leopard):

1) Ketika Anda melakukannya pip install virtualenv, perintah pip dikaitkan dengan salah satu versi python Anda, dan virtualenvdiinstal ke dalam versi python itu. Anda dapat melakukan

 $ which pip   

untuk melihat versi python apa itu. Jika Anda melihat sesuatu seperti:

 $ which pip
 /usr/local/bin/pip

lalu lakukan:

$ 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

Anda dapat melihat versi python di output.

Secara default, itu akan menjadi versi python yang digunakan untuk lingkungan baru yang Anda buat. Namun, Anda dapat menentukan versi python yang diinstal pada komputer Anda untuk digunakan di dalam lingkungan baru dengan -p flag:

$ 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 akan membuat folder di direktori saat ini yang akan berisi file executable Python, dan salinan dari pip [perintah] yang dapat Anda gunakan untuk menginstal paket lain.

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

virtualenv cukup salin python dari lokasi di komputer Anda ke direktori my_env / bin / yang baru dibuat.

2) Sistem python ada /usr/bin, sementara berbagai versi python yang saya instal, secara default, diinstal ke:

 /usr/local/bin

3) Berbagai ular sanca yang saya instal memiliki nama seperti python2.7atau python3.2, dan saya dapat menggunakan nama-nama itu daripada path lengkap.

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

1) Saya punya beberapa masalah dalam menjalankan virtualenvwrapper. Inilah yang akhirnya saya masukkan ~/.bash_profile:

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) -p optionBekerja secara berbeda dengan virtualenvwrapper: Saya harus menentukan path lengkap ke interpreter python untuk digunakan dalam lingkungan baru (ketika saya tidak ingin menggunakan versi python default):

$ 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. 

Tidak seperti virtualenv, virtualenvwrapper akan membuat lingkungan di lokasi yang ditentukan oleh variabel lingkungan $ WORKON_HOME. Itu menjaga semua lingkungan Anda di satu tempat.

7 belajar
sumber
which piptidak memberi tahu saya versi Python. Ini memberiku ini- /usr/local/bin/pip.
Sankalp
@Sankalp, Jika Anda /usr/local/binmelakukan dan melakukannya $ ls -al pip, Anda akan melihat sesuatu seperti: pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
7stud
Sudah agak dicatat dalam jawaban, tetapi mkprojectadalah perintah untuk digunakan jika Anda ingin membuat direktori proyek dan lingkungan virtual dari versi python yang diberikan. mkproject -p /usr/bin/python3.6 myNewPython36Project
Jim Factor
22

Kedua perintah ini seharusnya bekerja dengan baik.

virtualenv -p python2 myenv (Untuk python2)

virtualenv -p python3 myenv (Untuk python3)

Sachin Kolige
sumber
1
Flag -p python2 berfungsi setara dengan mencari / usr / bin / python2. Gunakan: virtualenv -p python2.7 myenv untuk 2.7 dll.
Yash Sharma
21

Misalkan saat ini Anda memiliki python 2.7 yang diinstal di virtualenv Anda. Tetapi ingin memanfaatkan python3.2, Anda harus memperbarui ini dengan:

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

Kemudian aktifkan virtualenv Anda dengan:

$ source activate name_of_your_virtualenv

dan kemudian lakukan: python --versiondi shell untuk memeriksa apakah versi Anda sekarang diperbarui.

kmario23
sumber
Lihat jawaban saya di bawah ini untuk solusi yang setara menggunakan variabel lingkungan. Pendekatan itu berarti Anda tidak harus ingat untuk menggunakannya -p.
Chris Johnson
13

Anda dapat menelepon virtualenvdengan versi python yang Anda inginkan. Sebagai contoh:

python3 -m virtualenv venv

Atau sebagai alternatif langsung arahkan ke jalur virtualenv Anda. misalnya untuk windows:

c:\Python34\Scripts\virtualenv.exe venv

Dan dengan menjalankan:

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.
>>>

Anda dapat melihat versi python diinstal di lingkungan virtual

Nima Soroush
sumber
Saya mendapatkan kesalahan ini saat menjalankan perintah pertama / usr / local / bin / python3: Tidak ada modul bernama virtualenv
tanvi
2
@tanvi: Anda harus menginstal virtualenv ke python3 Anda terlebih dahulu. Jalankan pip3 install virtualenvdulu
Nima Soroush
12

Itu -p Pendekatan bekerja dengan baik, tetapi Anda harus ingat untuk menggunakannya setiap kali. Jika tujuan Anda adalah beralih ke versi Python yang lebih baru secara umum, itu menyebalkan dan juga dapat menyebabkan kesalahan.

Pilihan Anda yang lain adalah mengatur variabel lingkungan yang melakukan hal yang sama -p. Setel ini melalui ~/.bashrcfile Anda atau di mana pun Anda mengelola variabel lingkungan untuk sesi login Anda:

export VIRTUALENV_PYTHON=/path/to/desired/version

Kemudian virtualenvakan menggunakannya kapan saja Anda tidak menentukan -ppada baris perintah.

Chris Johnson
sumber
Ini bekerja dengan baik. Adakah ide mengapa pengaturan export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/versionper dokumen virtualenvwrapper tidak berhasil tetapi solusi ini berhasil?
YPCrumble
Itu env var mengontrol yang virtualenvwrapperdigunakan Python saat dijalankan, tidak ada hubungannya dengan instalasi.
Chris Johnson
Ini berhasil untuk saya. Tidak lagi harus menggunakan -p setiap kali saya membuat virtualenv baru. Terima kasih!
nedblorf
7

Lebih mudah, dengan menggunakan substitusi perintah untuk menemukan python2 untuk Anda:

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

Atau saat menggunakan virtualenvwrapper:

mkvirtualenv -p $(which python2) <env_name>

Gerard
sumber
7

Untuk Mac (High Sierra), instal virtualenv di python3 dan buat virtualenv untuk python2:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14
Zihao Zhao
sumber
1
Instal virtualenv pada python3 jika Anda tidak memiliki:python3 -m pip install virtualenv
Zihao Zhao
Itu tidak bekerja. Versi python saya masih 3.
shivendra pratap singh
6

Di mac saya menggunakan pyenv dan virtualenvwrapper. Saya harus membuat virtualenv baru. Anda memerlukan homebrew yang saya anggap telah diinstal jika Anda menggunakan mac, tetapi hanya untuk bersenang-senang

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}

Saya juga membekukan persyaratan saya terlebih dahulu sehingga saya bisa menginstal ulang di virtualenv baru dengan:

pip install -r requirements.txt
silverdagger
sumber
Perintah harus berupa mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}versi, bukan versi. Jika SO mengizinkan suntingan pendek, saya akan memperbaikinya.
Martin Burch
pyenvtermasuk dukungan virtualenv melalui pyenv-virtualenvplugin, jadi saya merasa saya tidak benar-benar membutuhkan virtualenvwrapper. Lebih detail dalam jawaban pyenv saya .
RichVel
5

[November 2019] Saya perlu menginstal lingkungan Python 3.7 (env) pada sistem Linux Arch berbasis Python 3.8. Python 3.7 tidak lagi ada di sistem, jadi saya tidak bisa menurunkan versi Python, untuk menginstal paket yang saya butuhkan.

Lebih lanjut, saya ingin menggunakan paket / Python 3.7 di dalam lingkungan virtual (venv). Beginilah cara saya melakukannya.


Unduh file sumber versi Python:

Saya mengunduh file sumber Python 3.7.4 dari

https://www.python.org/downloads/source/

untuk

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz

Saya kemudian mengekstrak arsip itu (file sumber) ke

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/


Instalasi:

[Catatan: di sistem saya env, bukan venv.]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

Periksa versi Python yang terpasang:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

Cara membuat venv untuk versi Python tertentu:

https://docs.python.org/3/tutorial/venv.html

12.2. MENCIPTAKAN LINGKUNGAN VIRTUAL

Modul yang digunakan untuk membuat dan mengelola lingkungan virtual disebut venv. venvbiasanya akan menginstal versi Python terbaru yang Anda miliki. Jika Anda memiliki beberapa versi Python di sistem Anda, Anda dapat memilih versi Python tertentu dengan menjalankan python3 atau versi mana pun yang Anda inginkan.

Untuk membuat lingkungan virtual, tentukan direktori tempat Anda ingin meletakkannya, dan jalankan modul venv sebagai skrip dengan jalur direktori:

python3 -m venv tutorial-env

Ini akan membuat tutorial-envdirektori jika tidak ada, dan juga membuat direktori di dalamnya yang berisi salinan juru bahasa Python, perpustakaan standar, dan berbagai file pendukung. ...


Buat Python 3.7 venv [pada sistem operasi Python 3.8 env]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

Ditambahkan ke ~/.bashrc:

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

Uji Python 3.7 venv:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>
Victoria Stuart
sumber
1
Ini jawaban yang sangat teliti! :) Saya menghadapi masalah ini setiap kali saya perlu mentransfer sesuatu dari Arch Linux ke sistem lain (misalnya Debian-ish).
Robbie Capps
1
@Victoria Stuart, terima kasih banyak. Inilah yang saya cari.
daddyodevil
4

Di subsistem windows untuk linux:

  1. Buat lingkungan untuk python3:

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

    source env/bin/activate
Marcin Rapacz
sumber
3

Di windows:

py -3.4x32 -m venv venv34

atau

py -2.6.2 -m venv venv26

Ini menggunakan pypeluncur yang akan menemukan executable python yang tepat untuk Anda (dengan asumsi Anda telah menginstalnya).

jnnnnn
sumber
3

Ya , jawaban di atas benar dan berfungsi dengan baik pada sistem berbasis Unix seperti Linux & MAC OS X .

Saya mencoba membuat virtualenv untuk Python2 & Python3 dengan perintah berikut.

Di sini saya telah menggunakan venv2 & venv3 sebagai nama mereka masing-masing untuk Python2 & Python3 .

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$ 

Memeriksa lokasi pemasangan Python

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$ 
camar
sumber
2

Ini berhasil untuk saya

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
Dadaso Zanzane
sumber
2

Saya menggunakan pyenv untuk mengelola versi python saya.

pyenv install 3.7.3
pyenv local 3.7.3

Periksa versi python Anda:

$ python --version
Python 3.7.3

Buat lingkungan virtual dengan venv :

python -m venv .

Kemudian aktifkan Lingkungan Virtual:

source bin/activate

Periksa versi python Anda:

$ python --version
Python 3.7.3

Anda mungkin perlu menghapus lingkungan virtual sebelumnya

rm -rf bin
brandonbanks
sumber
2

Ini agak rumit untuk Windows. Jika Anda menggunakan Windows yang menjalankan python 3.3 atau yang lebih baru, Anda dapat menggunakan peluncur python pyuntuk melakukan ini dengan lebih mudah. Cukup instal versi python yang berbeda, lalu jalankan:

py -[my version] -m venv env

Ini akan menciptakan lingkungan virtual yang disebut envdalam direktori Anda saat ini, menggunakan python [my version]. Sebagai contoh:

py -3.7 -m venv env
./env/Scripts/activate

Ini menciptakan lingkungan virtual yang disebut envmenggunakan python3.7 dan mengaktifkannya. Tidak diperlukan jalur atau hal rumit lainnya.

Cole Smith
sumber
Bukankah itu seharusnya py -3.7 -m venv env(yang -mhilang)?
sinoroc
Yap, diperbaiki di pos !.
Cole Smith
1

Untuk Sistem Debian (debian 9) pada tahun 2019, saya menemukan solusi sederhana yang dapat memecahkan masalah dari dalam lingkungan virtual.

Misalkan lingkungan virtual diciptakan melalui:

python3.7 -m venv myenv

tetapi hanya memiliki versi python2danpython2.7 , dan Anda memerlukan fitur terbaru python3.7.

Kemudian, cukup jalankan perintah:

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

akan menambahkan paket python3.7 jika sudah tersedia di sistem Anda.

David Golembiowski
sumber
1

Ini adalah bug dengan virtualenv. Hanya memutakhirkan pip Anda yang harus diperbaiki.

pip install --upgrade virtualenv

Mohit
sumber
1

Seperti yang telah disebutkan dalam beberapa jawaban, menggunakan virtualenv adalah solusi bersih. Namun jebakan kecil yang harus diperhatikan semua orang adalah bahwa jika alias untuk python diatur dalam bash_aliases seperti:

python=python3.6

alias ini juga akan digunakan di dalam lingkungan virtual. Jadi, dalam skenario ini, menjalankan python -Vdalam env virtual akan selalu menghasilkan 3.6terlepas dari apa penerjemah yang digunakan untuk menciptakan lingkungan:

virtualenv venv --python=pythonX.X
PetarMI
sumber
0

Ini bekerja untuk saya di windows dengan instalasi python 2:

  1. Langkah 1: Instal versi python 3.
  2. Langkah 2: buat folder env untuk lingkungan virtual.
  3. Langkah 3: c: \ Python37 \ python -m venv c: \ path \ to \ env.

Ini adalah bagaimana saya membuat lingkungan virtual Python 3 pada instalasi python 2 saya yang ada.


sumber
0

Anda dapat melakukannya dengan melakukan ini:

virtualenv -p python3 .
Krishna Kamal
sumber
0

Ya, Anda hanya perlu menginstal versi python lain, dan tentukan lokasi versi python lainnya di perintah Anda seperti:

virtualenv / home / payroll / Dokumen / env -p / usr / bin / python3

Nitin Nath Giri
sumber
0

Berikut adalah stepbystep cara membuat lingkungan Virtual di folder Visual Studio Code: Saya menggunakan Powershell (mode Administrator):
1. Saya membuat folder VSCode - "D: \ Code_Python_VE" di mana saya ingin membuat lingkungan Virtual.
2. Selanjutnya saya ketik perintah - "pip3 install virtualenv". (D: \ Code_Python_VE> pip3 install virtualenv) 3. D: \ Code_Python_VE> python3 -m venv project_env
4. D: \ Code_Python_VE> project_env \ Scripts
\ activ.bat 5. D: \ Code_Python_VE> ls - Ini akan mencantumkan baru direktori "project_env".
6. D: \ Code_Python_VE> kode. Ini akan memulai Visual Studio Code. Pastikan perintahnya adalah (kode.).
7. Buat launch.jason dengan konten berikut:

{
    // 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"
        }
    ]
}

(Silakan cari cara pergi ke jendela Debug dan Tambahkan Konfigurasi baru dalam Kode VS).

  1. Tekan F1 dalam kode Visual studio dan palet perintah akan terbuka - Pilih Python Interpreter dan pilih project_env lingkungan virtual.
  2. Tambahkan file test.py dengan satu cetakan pernyataan ("Hello World").
  3. Jalankan program ini.
  4. Dalam terminal kode Visual studio -
    (project_env) d: \ Code_Python_VE> python -m pip install --upgrade
    Saya harap ini membantu.
TanuAD
sumber
-2

UBUNTU 19.04 / Global Python 3.7.

Ini bekerja untuk saya, memungkinkan lingkungan Python 3.8 menggunakan venv yang direkomendasikan untuk pengembangan python 3.

Pasang modul 3.8 dan 3.8 venv

$ sudo untuk menginstal python3.8 python3.8-venv ## ditambah modul lain yang Anda butuhkan

Buat Virtual Env Anda menggunakan versi python yang Anda inginkan dalam env itu

$ /usr/bin/python3.8 -m venv python38-env

beralih ke env virtual Anda

$ source python38-env / bin / aktifkan

python -V = python 3.8

Simon P
sumber