Используйте другую версию Python с virtualenv

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

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

Ответы

Ответ 1

Просто используйте параметр --python (или короткий -p) при создании экземпляра virtualenv, чтобы указать исполняемый файл Python, который вы хотите использовать, например:

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

NB Для Python 3.3 или более поздней версии см. Ответ Aelfinn ниже.

Ответ 2

ОБНОВЛЕНИЕ: Для Python3.6 приведенный ниже скрипт pyvenv устарел. Вместо,   Документы Python предлагают создать виртуальную среду с помощью следующей команды:

python3 -m venv <myenvname>

Для python3 (3. 3+) используйте вышеуказанный метод или команду script pyvenv.

pyvenv /path/to/new/virtual/environment

Обратите внимание, что venv не позволяет создавать виртуальные среды с другими версиями Python. Для этого установите и используйте virtualenv пакет.

Ответ 3

Это шаги, когда вы находитесь в среде общего хостинга, и вам нужно установить и выполнить Python из источника, а затем создать venv из вашей версии Python. Для 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

виртуальный 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   

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

Ответ 4

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

Ответ 5

Существует более простой способ,

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`

Ответ 6

В Windows для меня это работает:

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

без python.exe я получил WindowsError: [Error 5] Access is denied У меня есть Python2.7.1, установленный с virtualenv 1.6.1, и мне нужен python 2.5.2.

Ответ 7

Mac OSX 10.6.8 (Snow Leopard):

1) Когда вы выполняете pip install virtualenv, команда pip ассоциируется с одной из ваших версий python, и 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, которая используется для любой новой среды, которую вы создаете. Однако вы можете указать любую версию 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 [команды], которую вы можете использовать для установки других пакетов.

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

virtualenv просто копирует python из местоположения на вашем компьютере во вновь созданный каталог my_env/bin/.

2) Системный python находится в /usr/bin, в то время как различные версии Python, которые я установил, по умолчанию были установлены в:

 /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 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. Это держит все ваше окружение в одном месте.

Ответ 8

Предположим, у вас в настоящее время установлен python 2.7 на вашем виртуальном сервере. Но вы хотите использовать python3.2, вам придется обновить его с помощью:

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

Затем активируйте свой virtualenv:

$ source activate name_of_your_virtualenv

а затем выполните: python --version в оболочке, чтобы проверить, обновлена ли ваша версия.

Ответ 9

Эти две команды должны работать нормально.

virtualenv -p python2 myenv (для python2)

virtualenv -p python3 myenv (для python3)

Ответ 10

Вы можете вызвать virtualenv с нужной версией python. Например:

python3 -m virtualenv venv

Или, наоборот, прямо указывайте на свой виртуальный путь. например для окон:

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, установленную в виртуальной среде

Ответ 11

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

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

export VIRTUALENV_PYTHON=/path/to/desired/version

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

Ответ 12

Для 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

Ответ 13

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

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

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

mkvirtualenv -p $(which python2) <env_name>

Ответ 14

На 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

Ответ 15

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

  • Создайте среду для python3:

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

    source env/bin/activate
    

Ответ 16

Да, приведенные выше ответы верны и отлично работают в системах на базе 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$ 

Ответ 17

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

sudo apt-get install python3-minimal

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

Ответ 18

На окнах:

py -3.4x32 -m venv venv34

или же

py -2.6.2 -m venv venv26

Это использует пусковую установку py которая найдет для вас правильный исполняемый файл python (при условии, что вы его установили).

Ответ 20

Для систем 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, если они уже доступны в вашей системе.

Ответ 21

Это была ошибка с virtualenv. Только обновление вашего пипса должно быть исправлением.

pip install --upgrade virtualenv

Ответ 22

У меня это работало на windows с установкой python 2:

  1. Шаг 1: Установите версию Python 3.
  2. Шаг 2: создайте папку env для виртуальной среды.
  3. Шаг 3: c:\Python37\python -m venv c:\путь\к\env.

Вот как я создал виртуальную среду Python 3 на моей существующей установке Python 2.

Ответ 23

Да, вам просто нужно установить другую версию python и определить местоположение вашей другой версии python в вашей команде, например:

virtualenv/home/payroll/документы/env -p/usr/bin/python3

Ответ 24

Я использую pyenv для управления своей версией Python.

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

Ответ 25

Вы можете сделать это, выполнив следующее:

virtualenv -p python3 .

Ответ 26

Вот пошаговая инструкция по созданию виртуальной среды в папке кода Visual Studio: Я использовал Powershell (режим администратора):
 1. Я создаю папку VSCode - "D:\Code_Python_VE", в которой я хочу создать виртуальную среду.
 2. Далее я набираю команду - "pip3 install virtualenv". (D:\Code_Python_VE> pip3 установить 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 - будет выведен новый каталог "project_env".
 6. D:\Code_Python_VE> code. Это запустит Visual Studio Code. Убедитесь, что команда (code.).
 7. Создайте файл launch.jason со следующим содержимым:

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

(пожалуйста, найдите, как перейти к окну отладки и добавить новую конфигурацию в VS Code).

  1. Нажмите F1 в коде Visual Studio, и откроется командная паллета. Выберите Python Interpreter и выберите виртуальную среду project_env.
  2. Добавьте файл test.py с одним оператором print ("Hello World").
  3. Запустите эту программу.
  4. В терминале Visual Studio Code -
    (project_env) d:\Code_Python_VE> Python -m pip install --upgrade
    Надеюсь, это поможет.

Ответ 27

UBUNTU 19.04/Global Python 3.7.

Это сработало для меня, включив среду Python 3.8, используя рекомендованный venv для разработки на Python 3.

Установите модуль Venv 3.8 и 3.8

$ sudo apt install python3.8 python3.8 -V env ## плюс любые другие необходимые вам модули

Создайте свою виртуальную среду, используя нужную версию Python в этой среде

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

переключиться в виртуальную среду

$ source python38-env/bin/activ

питон -V = питон 3,8