Используйте другую версию Python с virtualenv - PullRequest
929 голосов
/ 08 октября 2009

У меня есть система Debian, в настоящее время работающая с python 2.5.4. У меня virtualenv правильно установлен, все работает нормально. Есть ли вероятность, что я смогу использовать virtualenv с другой версией Python?

Я скомпилировал Python 2.6.2 и хотел бы использовать его с некоторым virtualenv. Достаточно ли перезаписать двоичный файл? Или я должен что-то изменить в отношении библиотек?

Ответы [ 22 ]

9 голосов
/ 05 августа 2016

Подход -p работает хорошо, но вы должны помнить, чтобы использовать его каждый раз. Если ваша цель состоит в том, чтобы перейти на более новую версию Python в целом, это будет проблемой, а также может привести к ошибкам.

Другой вариант - установить переменную окружения, которая делает то же самое, что и -p. Установите это через файл ~/.bashrc или везде, где вы управляете переменными среды для ваших сеансов входа в систему:

export VIRTUALENV_PYTHON=/path/to/desired/version

Тогда virtualenv будет использовать это всякий раз, когда вы не укажете -p в командной строке.

8 голосов
/ 24 апреля 2018

Для Mac (High Sierra), установите virtualenv на python3 и создайте virtualenv для python2:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14
7 голосов
/ 19 сентября 2016

Еще проще, используя подстановку команд, чтобы найти для вас python2:

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

Или при использовании virtualenvwrapper:

mkvirtualenv -p $(which python2) <env_name>

6 голосов
/ 03 сентября 2015

На Mac я использую pyenv и virtualenvwrapper. Я должен был создать новый virtualenv. Вам нужен homebrew, который, я полагаю, вы установили, если вы работаете на 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
4 голосов
/ 26 мая 2017

В подсистеме Windows для Linux:

  1. Создание среды для python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. Активировать его:

    source env/bin/activate
    
3 голосов
/ 16 декабря 2017

Да , приведенные выше ответы верны и отлично работают на Unix-системах, таких как Linux & MAC OS X .

Я пытался создать virtualenv для Python2 & Python3 с помощью следующих команд.

Здесь я использовал 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$ 
2 голосов
/ 18 апреля 2018

В окнах:

py -3.4x32 -m venv venv34

или

py -2.6.2 -m venv venv26

При этом используется py пусковая установка , которая найдет подходящий исполняемый файл Python для вас (при условии, что выустановите его).

2 голосов
/ 03 июня 2016

у меня сработало

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
1 голос
/ 04 апреля 2019

Это была ошибка с virtualenv. Исправление должно быть просто улучшено.

pip install --upgrade virtualenv

1 голос
/ 24 февраля 2019

Для систем Debian (debian 9) в 2019 году я обнаружил простое решение, которое может решить проблему в виртуальной среде.

Предположим, что виртуальная среда была создана с помощью:

python3.7 -m venv myenv

, но имеет только версии python2 и python2.7, и вам нужны последние функции python3.7.

Затем просто запустите команду:

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

добавит пакеты python3.7, если они уже доступны в вашей системе.

...