web-dev-qa-db-ja.com

Virtualenvで異なるバージョンのPythonを使う

私は現在Python 2.5.4で動いているDebianシステムを持っています。 virtualenvが正しくインストールされました、すべてがうまくいきました。異なるバージョンのPythonでvirtualenvを使用できる可能性はありますか?

私はPython 2.6.2をコンパイルし、それを何らかのvirtualenvと共に使いたいと思います。バイナリファイルを上書きするだけで十分ですか。それともライブラリに関して何か変更しなければなりませんか?

916
Ulf

Virtualenvインスタンスを作成するときに--python(または短い-p)オプションを使用して、使用するPython実行可能ファイルを指定します。

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

N.B. Python 3.3 以降については、以下のThe Aelfinnの answer を参照してください。

1338
Daniel Roseman

更新: Python3.6の場合、以下のpyvenvスクリプトは推奨されません。代わりに、 Pythonドキュメントは 次のコマンドで仮想環境を作成します。

python3 -m venv <myenvname>

Python3(3.3以降)の場合は、上記の方法または scriptpyvenvコマンドを使用します。

pyvenv /path/to/new/virtual/environment

venvは他のバージョンのPythonでvirtualenvを作成することを許可していないことに注意してください。そのためには、virtualenvpackage をインストールして使用してください。

197
The Aelfinn

あなたが共有ホスティング環境にいて、ソースからPythonをインストールしてコンパイルし、そしてあなたのPythonバージョンからvenvを作成する必要があるとき、これらはステップです。 Python 2.7.9の場合は、次のようにしてください。

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

仮想環境

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   

当然のことながら、これはあなたが働いて展開している正確な環境を複製したいという状況にも当てはまります。

173
zzart
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
96
iElectric

もっと簡単な方法があります、

virtualenv venv --python=python2.7

コメントのおかげで、これはpython2.7がシステムレベルでインストールされている場合にのみ機能します(例:/usr/bin/python2.7)。

それ以外の場合は、自作を使用している場合は、あなたが欲しいものを与えるためにパスを使用することができます。

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

あなたはあなたのpythonインストールへのパスを見つけることができます。

which python

これはpython 3でも動作します。

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

最終的には

virtualenv venv -p `which python`
virtualenv venv -p `which python3`
77
Daniel Lee

私のためのWindowsの下でこれは動作します:

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

python.exeなしでWindowsError: [Error 5] Access is deniedを手に入れました私はvirtualenv 1.6.1と共にPython2.7.1をインストールしました、そして、私はPython 2.5.2が欲しかったです。

67
balazs

Mac OSX 10.6.8(Snow Leopard):

1)pip install virtualenvを実行すると、pipコマンドはあなたのpythonバージョンの1つに関連付けられ、virtualenvはそのバージョンのpythonにインストールされます。できるよ

 $ which pip   

pythonのバージョンを確認する次のように表示されたら:

 $ which pip
 /usr/local/bin/pip

それから:

$ 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

あなたは出力でPythonのバージョンを見ることができます。

デフォルトでは、これはあなたが作成した新しい環境に使われるpythonのバージョンになります。ただし、-p flagを使用して、コンピューターにインストールされている任意のバージョンのpythonを新しい環境内で使用するように指定できます。

$ 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は、現在のディレクトリにPython実行ファイルを含むフォルダと、他のパッケージをインストールするのに使用できるpip [command]のコピーを作成します。

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

virtualenvはあなたのコンピュータのある場所から新しく作成されたmy_env/bin /ディレクトリにpythonをコピーするだけです。

2)システムpythonは/usr/binにありますが、私がインストールしたさまざまなpythonバージョンは、デフォルトでは次の場所にインストールされていました。

 /usr/local/bin

3)私がインストールしたさまざまなpythonsはpython2.7python3.2のような名前を持っています、そして私はフルパスではなくそれらの名前を使うことができます。

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

1)virtualenvwrapperを機能させるのに問題がありました。これが私が~/.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 optionはvirtualenvwrapperとは異なる動作をします:私は新しい環境で使うPythonインタプリタへのフルパスを指定しなければなりません(デフォルトのPythonバージョンを使いたくない場合):

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

Virtualenvとは異なり、virtualenvwrapperは$ WORKON_HOME環境変数で指定された場所に環境を作成します。それはあなたのすべての環境を一箇所に保ちます。

28
7stud

あなたのvirtualenvに現在python 2.7がインストールされているとします。しかしpython3.2を利用したい場合は、これを次のように更新する必要があります。

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

それから virtualenv を有効にしてください:

$ source activate name_of_your_virtualenv

その後、シェルでpython --versionを実行して、現在のバージョンが更新されているかどうかを確認します。

20
kmario23

これら二つのコマンドは初心者のためにうまく働くべきです

virtualenv -p python2 myenv(python2の場合)

virtualenv -p python3 myenv(python3の場合)

15
Sachin Kolige

あなたが望むPythonバージョンでvirtualenvを呼び出すことができます。例えば:

python3 -m virtualenv venv

または代わりに直接あなたのvirtualenvパスを指してください。例えばWindowsの場合

c:\Python34\Scripts\virtualenv.exe venv

そして実行することで:

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

あなたは仮想環境にインストールされているPythonのバージョンを見ることができます

10
Nima Soroush

-pアプローチはうまくいきますが、毎回それを使うことを忘れないでください。あなたの目標が一般的に新しいバージョンのPythonに切り替えることであるならば、それは苦痛であり、そしてまた間違いにつながることができます。

あなたの他の選択肢は、-pと同じことをする環境変数を設定することです。あなたの~/.bashrcファイルを通して、またはあなたがあなたのログインセッションのために環境変数を管理するところならどこでもこれを設定してください:

export VIRTUALENV_PYTHON=/path/to/desired/version

それからvirtualenvはあなたがコマンドラインで-pを指定しないときはいつでもそれを使います。

9
Chris Johnson

Mac(High Sierra)の場合は、python3にvirtualenvをインストールし、python2のvirtualenvを作成します。

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

Macではpyenvとvirtualenvwrapperを使っています。私は新しいvirtualenvを作成しなければなりませんでした。あなたは自作を必要としています。あなたがMacを使っているのであれば、私はあなたがインストールしたと仮定します。

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}

私はまた私が単に新しいvirtualenvに再インストールすることができるように最初に私の要件を凍結しました:

pip install -r requirements.txt
6
silverdagger

さらに簡単に、python2を見つけるためにコマンド置換を使用することで、

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

またはvirtualenvwrapperを使用している場合:

mkvirtualenv -p $(which python2) <env_name>

6
Gerard

Linux用のWindowsサブシステムでは:

  1. Python3用の環境を作成します。

    virtualenv --python=/usr/bin/python3 env
    
  2. 有効にします。

    source env/bin/activate
    
4
Marcin Rapacz

はい 上記の答えは正しく、 Linux MAC OS X のようなUnixベースのシステムではうまく動作します。

私は以下のコマンドで virtualenv Python 2 Python 3 用に作成しようとしました。

ここでは、 venv2 venv3 をそれぞれ 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$ 

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$ 
3
hygull

Windowsの場合

py -3.4x32 -m venv venv34

または

py -2.6.2 -m venv venv26

これは pyランチャー を使用します。

2
jnnnnn

それは私のために働いた

Sudo apt-get install python3-minimal

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

virtualenvの作成へのリンク

1
Aseem

2019年のDebian(debian 9)システムのために、私は仮想環境内から問題を解決するかもしれない簡単な解決策を発見しました。

仮想環境が次の方法で作成されたとします。

python3.7 -m venv myenv

しかしpython2python2.7のバージョンしかないので、python3.7の最近の機能が必要です。

次に、単にコマンドを実行します。

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

あなたのシステムでpython3.7パッケージがすでに利用可能ならば追加します。

これはvirtualenvのバグでした。ピップをアップグレードするだけで解決するはずです。

pip install --upgrade virtualenv

1
Mohit

はい、他のバージョンのpythonをインストールし、他のバージョンのpythonの場所を次のようにコマンドで定義する必要があります。

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

0
Nitin Nath Giri

pythonバージョンを管理するには、 pyenv を使用します。

pyenv install 3.7.3
pyenv local 3.7.3

pythonバージョンを確認します。

$ python --version
Python 3.7.3

venv を使用して仮想環境を作成します。

python -m venv .

次に、仮想環境をアクティブ化します。

source bin/activate

pythonバージョンを確認します。

$ python --version
Python 3.7.3

以前の仮想環境を削除する必要があるかもしれません

rm -rf bin
0
brandonbanks

python 2をインストールしたWindowsで動作しました:

  1. ステップ1:python 3バージョンをインストールします。
  2. ステップ2:仮想環境のenvフォルダーを作成します。
  3. ステップ3:c:\ Python37\python -m venv c:\ path\to\env.

これは、既存のPython 2インストールでpython 3仮想環境を作成した方法です。

0
user11118940

これを行うことでそれを行うことができます:

virtualenv -p python3 .
0
Krishna Kamal