Development Tip

virtualenv와 함께 다른 Python 버전 사용

yourdevel 2020. 9. 27. 14:12
반응형

virtualenv와 함께 다른 Python 버전 사용


현재 Python 2.5.4로 실행중인 Debian 시스템이 있습니다. virtualenv가 제대로 설치되었고 모든 것이 잘 작동합니다. 다른 버전의 Python에서 virtualenv를 사용할 수 있습니까?

Python 2.6.2를 컴파일했으며 일부 virtualenv와 함께 사용하고 싶습니다. 바이너리 파일을 덮어 쓰는 것으로 충분합니까? 아니면 도서관과 관련하여 무언가를 변경해야합니까?


그냥 사용 --python(또는 짧은 -p당신의 VIRTUALENV 인스턴스를 만들 때 사용, 예를 들어 원하는 실행 파이썬을 지정) 옵션 :

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

NB Python 3.3 이상에 대해서는 아래 Aelfinn의 답변을 참조하십시오.


업데이트 : Python3.6의 경우 아래 pyvenv스크립트는 더 이상 사용되지 않습니다. 대신 Python 문서는 다음 명령을 사용하여 가상 환경을 만들 것을 제안 합니다.

python3 -m venv <myenvname>

python3 (3.3+)의 경우 위의 방법 또는 스크립트 pyvenv 명령을 사용하십시오.

pyvenv /path/to/new/virtual/environment

venv다른 버전의 Python으로 virtualenv를 생성 하는 것은 허용되지 않습니다. 이를 위해 virtualenv 패키지를 설치하고 사용하십시오 .


다음은 공유 호스팅 환경에 있고 소스에서 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   

당연히 이것은 작업하고 배포하는 정확한 환경을 복제하려는 모든 상황에 적용될 수 있습니다.


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

더 쉬운 방법이 있습니다.

virtualenv venv --python=python2.7

주석 덕분에 이것은 시스템 수준에서 python2.7을 설치 한 경우에만 작동합니다 (예 : /usr/bin/python2.7).

그렇지 않으면 homebrew를 사용하는 경우 경로를 사용하여 원하는 것을 제공 할 수 있습니다.

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

다음을 사용하여 Python 설치 경로를 찾을 수 있습니다.

which 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`

나를 위해 Windows에서 이것은 작동합니다.

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

를 빼고 python.exe내가 가지고 WindowsError: [Error 5] Access is denied내가 Python2.7.1이 VIRTUALENV 1.6.1로 설치되어, 나는 파이썬 2.5.2을 원했다.


Mac OSX 10.6.8 (Snow Leopard) :

1)을 수행 pip install virtualenv하면 pip 명령이 Python 버전 중 하나와 연결 virtualenv되고 해당 버전의 Python에 설치됩니다. 넌 할 수있어

 $ which pip   

어떤 버전의 파이썬인지 확인하십시오. 다음과 같은 내용이 표시되는 경우 :

 $ 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 버전입니다. 그러나 다음을 사용하여 새 환경에서 사용할 컴퓨터에 설치된 모든 Python 버전을 지정할 수 있습니다 -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 현재 디렉토리에 Python 실행 파일이 포함될 폴더와 다른 패키지를 설치하는 데 사용할 수있는 pip [command] 사본이 생성됩니다.

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

virtualenv 컴퓨터의 한 위치에서 새로 생성 된 my_env / bin / 디렉토리로 파이썬을 복사합니다.

2) 시스템 파이썬은에 /usr/bin있지만 내가 설치 한 다양한 파이썬 버전은 기본적으로 다음 위치에 설치되었습니다.

 /usr/local/bin

3) 내가 설치 한 다양한 파이썬에는 python2.7또는 같은 python3.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 optionvirtualenvwrapper와 다르게 작동합니다 : 새로운 환경에서 사용할 파이썬 인터프리터의 전체 경로를 지정해야합니다 (기본 파이썬 버전을 사용하고 싶지 않을 때) :

$ 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 환경 변수로 지정된 위치에 환경을 생성합니다. 모든 환경을 한곳에 유지합니다.


현재 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셸에서 버전이 현재 업데이트되었는지 확인하십시오.


이 두 명령은 잘 작동합니다.

virtualenv -p python2 myenv (python2의 경우)

virtualenv -p python3 myenv (python3의 경우)


virtualenv원하는 파이썬 버전으로 호출 할 수 있습니다 . 예를 들면 :

python3 -m virtualenv venv

또는 가상 환경 경로를 직접 가리 킵니다. 예 : 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.
>>>

가상 환경에 설치된 파이썬 버전을 볼 수 있습니다


-p접근 방식은 잘 작동하지만 당신은 그 때마다 사용하는 것을 기억해야합니까. 일반적으로 새 버전의 Python으로 전환하는 것이 목표라면 고통이며 실수로 이어질 수도 있습니다.

다른 옵션은와 동일한 작업을 수행하는 환경 변수를 설정하는 것 -p입니다. ~/.bashrc파일을 통해 또는 로그인 세션에 대한 환경 변수를 관리 할 때마다 이를 설정하십시오 .

export VIRTUALENV_PYTHON=/path/to/desired/version

그런 다음 명령 줄에서 virtualenv지정하지 않을 때마다이를 사용합니다 -p.


For Mac(High Sierra), install the virtualenv on python3 and create a virtualenv for python2:

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

Even easier, by using command substitution to find python2 for you:

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

Or when using virtualenvwrapper :

mkvirtualenv -p $(which python2) <env_name>


On the mac I use pyenv and virtualenvwrapper. I had to create a new virtualenv. You need homebrew which I'll assume you've installed if you're on a mac, but just for fun:

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}

I also froze my requirements first so i could simply reinstall in the new virtualenv with:

pip install -r requirements.txt

In windows subsystem for linux:

  1. Create environment for python3:

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

    source env/bin/activate
    

Yes, the above answers are correct and works fine on Unix based systems like Linux & MAC OS X.

I tried to create virtualenv for Python2 & Python3 with the following commands.

Here I have used venv2 & venv3 as their names for Python2 & Python3 respectively.

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$ 

Checking Python installation locations

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$ 

It worked for me

sudo apt-get install python3-minimal

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

On windows:

py -3.4x32 -m venv venv34

or

py -2.6.2 -m venv venv26

This uses the py launcher which will find the right python executable for you (assuming you have it installed).


virtualenv -p python3 myenv

Link to Creating virtualenv


For Debian (debian 9) Systems in 2019, I discovered a simple solution that may solve the problem from within the virtual environment.

Suppose the virtual environment were created via:

python3.7 -m venv myenv

but only has versions of python2 and python2.7, and you need the recent features of python3.7.

Then, simply running the command:

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

will add python3.7 packages if they are already available on your system.


This was a bug with virtualenv. Just upgrading your pip should be the fix.

pip install --upgrade virtualenv


It worked for me on windows with python 2 installation :

  1. Step 1: Install python 3 version .
  2. Step 2: create a env folder for the virtual environment.
  3. Step 3 : c:\Python37\python -m venv c:\path\to\env.

This is how i created Python 3 virtual environment on my existing python 2 installation.


I use pyenv to manage my python version.

pyenv install 3.7.3
pyenv local 3.7.3

Check your python version:

$ python --version
Python 3.7.3

Create the virtual environment with venv:

python -m venv .

Then activate the Virtual Environment:

source bin/activate

Check your python version:

$ python --version
Python 3.7.3

You may need to remove the previous virtual environment

rm -rf bin

You can do it by doing this:

virtualenv -p python3 .

Yes you just need to install the other version of python, and define the location of your other version of python in your command like :

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


Here is the stepbystep how to create the Virtual environment in Visual Studio Code folder: I used Powershell (Administrator mode):
1. I create a VSCode folder - "D:\Code_Python_VE" where I want to create Virtual environment.
2. Next I type the command - "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\activate.bat
5. D:\Code_Python_VE> ls - This will list a new directory "project_env".
6. D:\Code_Python_VE> code . This will start Visual Studio Code. Make sure the command is (code .).
7. Create launch.jason with following content:

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

(Please search how to go to Debug window and Add new Configuration in VS Code).

  1. Visual Studio 코드에서 F1을 누르면 명령 팔레트가 열립니다. Python Interpreter를 선택하고 가상 환경 project_env를 선택합니다.
  2. 하나의 문 print ( "Hello World")와 함께 test.py 파일을 추가합니다.
  3. 이 프로그램을 실행하십시오.
  4. Visual Studio 코드 터미널에서-
    (project_env) d : \ Code_Python_VE> python -m pip install --upgrade
    도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv

반응형