Pertanyaan Gunakan versi Python yang berbeda dengan virtualenv


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

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


777
2017-10-07 21:11


asal


Jawaban:


Cukup gunakan --python (atau singkat -p) pilihan saat membuat instance virtualenv Anda untuk menentukan Python yang dapat dieksekusi yang ingin Anda gunakan, misalnya:

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

N.B. Untuk Python 3.3 atau lebih baru, lihat The Aelfinn's menjawab di bawah. [Catatan Editor: Saya tahu ini biasanya harus berupa komentar, bukan penyuntingan, tetapi komentar baru akan disembunyikan, dan saya hanya menghabiskan 45 menit menguraikan kesalahan karena jawaban penting ini terkubur di bawah tiga atau empat jawaban burung beo. Aku hanya berusaha menyelamatkan semua orang di sini.]


1170
2017-10-07 21:33



Ini adalah langkah-langkah ketika Anda berada di lingkungan shared hosting dan perlu menginstal & memaafkan Python dari sumber dan kemudian membuat venv dari versi Python Anda. Untuk Python 2.7.9 Anda akan melakukan sesuatu di sepanjang baris 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

env virtual

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   

Tentunya ini dapat diterapkan pada situasi apa pun di mana Anda ingin meniru lingkungan yang Anda kerjakan dan gunakan.


164
2017-07-02 22:17



MEMPERBARUI:  Untuk Python3.6, di bawah ini pyvenv skrip tidak lagi digunakan. Sebagai gantinya,   saran Python Docs menciptakan lingkungan virtual dengan perintah berikut:

python3 -m venv <myenvname>

Untuk python3 (3.3+), gunakan metode di atas atau naskah  pyvenv perintah.

pyvenv /path/to/new/virtual/environment

Harap dicatat bahwa venv tidak mengizinkan pembuatan virtualenv dengan versi Python lainnya. Untuk itu, instal dan gunakan virtualenv  paket.


132
2017-09-26 22:46



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

90
2017-11-04 15:15



Di bawah Windows untuk saya ini bekerja:

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

tanpa python.exe saya mendapatkan WindowsError: [Error 5] Access is denied  Saya telah menginstal Python2.7.1 dengan virtualenv 1.6.1, dan saya ingin python 2.5.2.


63
2017-07-31 21:04



Ada cara yang lebih mudah,

virtualenv venv --python=python2.7

Berkat komentar, ini hanya berfungsi jika Anda menginstal python2.7 pada level sistem (mis. /usr/bin/python2.7).

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

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

Anda dapat menemukan jalan untuk 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

Pada akhirnya kondensasi untuk:

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

56
2017-11-01 11:59



Mac OSX 10.6.8 (Snow Leopard):

1) Saat Anda melakukannya pip install virtualenv, perintah pip dikaitkan dengan salah satu versi python Anda, dan virtualenv terinstal ke versi python. Anda dapat melakukan

 $ which pip   

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

 $ which pip
 /usr/local/bin/pip

kemudian 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 adalah versi python yang digunakan untuk lingkungan baru apa pun 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 yang dapat dieksekusi Python, dan salinan pip   [perintah] yang dapat Anda gunakan untuk menginstal paket lain.

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

virtualenv hanya menyalin python dari suatu lokasi di komputer Anda ke direktori my_env / bin / yang baru dibuat.

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

 /usr/local/bin

3) Berbagai piton yang saya pasang memiliki nama-nama seperti python2.7 atau python3.2, dan saya dapat menggunakan nama-nama itu alih-alih jalur lengkap.

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

1) Saya memiliki beberapa masalah membuat virtualenvwrapper bekerja. 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) The -p option bekerja secara berbeda dengan virtualenvwrapper: Saya harus menentukan path lengkap ke interpreter python yang akan digunakan di 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 menciptakan lingkungan di lokasi yang ditentukan oleh variabel lingkungan $ WORKON_HOME. Itu membuat semua lingkungan Anda di satu tempat.


26
2018-01-15 20:43



Misalkan Anda saat ini telah menginstal python 2.7 di virtualenv Anda. Tetapi ingin menggunakan python3.2. Anda harus memperbarui ini dengan:

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

Kemudian aktifkan virtualenv dan ketik Anda python --version di shell untuk memeriksa apakah versi Anda sekarang diperbarui.


15
2017-12-30 05:51



Anda bisa menelepon virtualenv dengan versi python yang Anda inginkan. Sebagai contoh:

python3 -m virtualenv venv

Atau secara alternatif langsung menunjuk 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 yang dipasang di lingkungan virtual


10
2017-12-12 23:11