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

1117

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

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

Ulf
источник
8
Просто упомянув, что вы можете сделать это, используя virtualenvwrapper.
смещение
13
Стоит отметить, что в Python 3 есть встроенный эквивалент virtualenv: venv .
naught101
2
Разве невозможно переключить версию Python в текущей среде без создания новой среды?
Чарли Паркер

Ответы:

1542

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

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

NB Для Python 3.3 или более поздней версии, обратитесь к Aelfinn в ответ ниже.

Даниэль Роузман
источник
160
Я решил упомянуть, что это работает и для virtualenvwrappers: mkvirtualenv -p python2.6 env
bias
65
Я что-то здесь упускаю - не требует ли, чтобы 2.6 уже был установлен в системе? Я думал, что смысл virtualenv в том, что у меня может быть версия Python, отличная от основной (в моем случае это 2.4 на CentOS). Я предполагал, что смогу установить virtualenv, а затем установить под него Python 2.6, чтобы использовать пакеты в env?
Джон С
42
@ Джон, да. Не в этом суть virtualenv: дело в том, чтобы создать изолированную среду для Python. Сначала вам нужно будет установить эту версию - однако вы можете установить ее локально для своего пользователя.
Даниэль Роузман
8
@JohnC Вы можете использовать pythonbrew для установки альтернативных питонов.
ясень
54
Если вы немного ленивый:virtualenv -p `which python2.6` <path/to/new/virtualenv>
Blaze
294

Начиная с Python 3, Документы Python предлагают создать виртуальную среду с помощью следующей команды:

python3 -m venv <myenvname>

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


Устаревшая информация

pyvenv Сценарий может быть использован для создания виртуальной среды

pyvenv /path/to/new/virtual/environment

но он не рекомендуется с Python 3.6.

Аэльфинн
источник
8
Рад, что вы указали, что это нуждается в повышении. Один минус: теперь они выступают за его запуск, python3 -m venv <envname>чтобы не нуждаться в скриптах-заглушках для всего.
Пол Эверитт
6
На самом деле pyvenvсценарий устарел в Python 3.6+, а сам базовый venvмодуль - нет. Так что используйте, python 3 -m venv <myenvname>как говорит @PaulEveritt.
RichVel
5
Будьте предупреждены об этом pyvenvили python3 -m venv ...НЕ устанавливайте python-configскрипт. Это означает, что даже после активации вашей среды Python3 для всей системы python-configбудут вызываться запутанные последствия. Посмотрите этот отчет об ошибке за 2011 год github.com/pypa/virtualenv/issues/169 и мой вопрос stackoverflow.com/questions/42020937/…
Ларикс Децидуа
1
«Обратите внимание, что venvне позволяет создавать virtualenv с другими версиями Python». - Ты уверен, что это правда? Мне кажется, что это работает нормально, если я создаю его с определенной версией Python, например python3.5 -m venv <myenvname>(при условии, что у меня есть эта версия Python).
Доминик Пасторе
5
Подтверждение того, что наблюдение @ Nick работает: способ создать файл venvс определенной версией Python - использовать эту версию при настройке. Например:python3.5 -m venv venv
tanius
183

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

виртуальная среда

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   

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

zzart
источник
2
Не могли бы вы пояснить, почему это нужно сделать так: зачем устанавливать Python локально? И что еще более важно, зачем устанавливать virtualenv, используя ту версию Python, которую вы хотите использовать с ней ?
Ладжарре
15
конечно. Если вы находитесь в среде виртуального хостинга, и сервер предоставляет более старые версии python, которые вас не устраивают - это был мой сценарий. Также, если вам случается разрабатывать проекты на разных серверах и вы хотите реплицировать эти среды на локальном компьютере ... Virtualenv создает жесткие ссылки на библиотеки Python. так что это действительно важно с версией python, которую вы используете для установки и создания Virtualenv.
zzart
6
Или если вы похожи на меня и работаете на заблокированной машине без привилегий sudo. Локальные копии библиотек, баз данных SQL, языков и компиляторов в изобилии! Спасибо!
zachd1_618
4
Под virtualenv 1.9.1 мне пришлось использовать ~/.localpython/bin/virtualenvвместо просто virtualenvнастройки для завершения без ошибок. Кроме того, используйте source ve/bin/activateвместо source activate.
Сол
3
Еще одна причина сделать это - опробовать бета-версии, прежде чем они станут основными, чтобы убедиться, что ваши проекты и их зависимости по-прежнему работают, не рискуя нарушить управление пакетами, забивая что-то и оставляя повисшие файлы повсюду. Мне нравится этот ответ.
RobotHumans
103
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
iElectric
источник
2
Смотрите мой ответ ниже для эквивалентного решения с использованием переменных среды. Такой подход означает, что вам не нужно помнить, чтобы использовать -p.
Крис Джонсон
5
Нет ли решений, которые переключаются между версиями Python без необходимости создания новой виртуальной среды?
Чарли Паркер
3
Будет ли это работать, если вы хотите установить версию Python, которая не установлена ​​в вашей системе? Скажем, вы хотите проверить, python3.6но не хотите прикасаться к python3.5установленному на вашем компьютере?
alpha_989,
1
@ alpha_989 ты находишь решение для этого?
Даниил Машкин
97

Есть более простой способ,

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`
Дэниел Ли
источник
1
К вашему сведению, работает, только если у вас установлен python2.7 на системном уровне (например, /usr/bin/python2.7)
kingb12
Я был в состоянии сделать это с virtualenv venv --python=python3.6а
Иордания
Вы можете на самом деле сбросить младший номер версии. virtualenv env --python=python2
Anshul
Это правильное решение, когда у вас есть все версии, вы заинтересованы в том, чтобы использовать псевдоним, а не полный путь
user1767754
В Windows это работало как шарм с небольшим изменением: virtualenv venv --python=<insert_your_python_version_here>где <insert_your_python_version_here>был в моем случаеC:\Python\Python368\python.exe
abautista
70

Под 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.

Балаш
источник
32

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

7stud
источник
which pipне говорит мне версию Python. Это дает мне это /usr/local/bin/pip.
Sankalp
@Sankalp, если вы идете /usr/local/binи делаете $ ls -al pip, вы должны увидеть что-то вроде: pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
7stud
Уже несколько отмечен в ответе, но mkprojectэто команда, которую нужно использовать, если вы хотите, чтобы она создавала как каталог проекта, так и виртуальную среду с заданной версией Python. mkproject -p /usr/bin/python3.6 myNewPython36Project
Джим Фактор
22

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

virtualenv -p python2 myenv (Для python2)

virtualenv -p python3 myenv (Для python3)

Сачин Колиге
источник
1
Флаг -p python2 работает аналогично поиску / usr / bin / python2. Использование: virtualenv -p python2.7 myenv для 2.7 и т. Д.
Яш Шарма
21

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

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

Затем активируйте свой virtualenv с помощью:

$ source activate name_of_your_virtualenv

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

kmario23
источник
Смотрите мой ответ ниже для эквивалентного решения с использованием переменных среды. Такой подход означает, что вам не нужно помнить, чтобы использовать -p.
Крис Джонсон
13

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

Нима Соруш
источник
Я получил эту ошибку при запуске первой команды / usr / local / bin / python3: нет модуля с именем virtualenv
tanvi
2
@tanvi: сначала нужно установить virtualenv в свой python3. Беги pip3 install virtualenvпервым
Нима Соруш
12

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

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

export VIRTUALENV_PYTHON=/path/to/desired/version

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

Крис Джонсон
источник
Это работало прекрасно. Есть идеи, почему настройка в export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/versionсоответствии с документами virtualenvwrapper не сработала, но это решение сработало?
YPCrumble
Этот env var контролирует, что Python virtualenvwrapperиспользует при запуске, не имеет ничего общего с установками.
Крис Джонсон
Это сработало для меня. Больше не нужно использовать -p каждый раз, когда я создаю новый virtualenv. Спасибо!
Недблорф
7

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

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

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

mkvirtualenv -p $(which python2) <env_name>

Gerard
источник
7

Для 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
Зихао Чжао
источник
1
Установите virtualenv на python3, если у вас его нет:python3 -m pip install virtualenv
Zihao Zhao
Не работает Моя версия на
Питоне
6

На 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
silverdagger
источник
Командой должны быть mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}версии, а не версия. Если бы SO допускал короткие правки, я бы это исправил.
Мартин Берч
pyenvвключает в себя поддержку virtualenv через pyenv-virtualenvплагин, поэтому я считаю, что мне не нужен virtualenvwrapper. Более подробно в моем ответе pyenv .
RichVel
5

[Ноябрь 2019] Мне нужно было установить среду Python 3.7 (env) в моей системе Arch Linux на основе Python 3.8. Python 3.7 больше не присутствовал в системе, поэтому я не мог понизить версию Python до установки необходимого мне пакета.

Кроме того, я хотел использовать этот пакет / Python 3.7 в виртуальной среде (venv). Вот как я это сделал.


Загрузите исходные файлы версии Python:

Я скачал исходные файлы Python 3.7.4 с

https://www.python.org/downloads/source/

в

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz

Затем я извлек этот архив (исходные файлы) в

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/


Установка:

[Примечание: в моей системе env, а не venv.]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

Проверьте установленные версии Python:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

Как создать venv для конкретной версии Python:

https://docs.python.org/3/tutorial/venv.html

12.2. СОЗДАНИЕ ВИРТУАЛЬНЫХ СРЕД

Модуль, используемый для создания и управления виртуальными средами, называется venv.venvобычно устанавливает самую последнюю версию Python, которая у вас есть. Если в вашей системе имеется несколько версий Python, вы можете выбрать конкретную версию Python, запустив python3 или любую другую версию, какую захотите.

Чтобы создать виртуальную среду, определите каталог, в который вы хотите поместить его, и запустите модуль venv в виде сценария с путем к каталогу:

python3 -m venv tutorial-env

Это создаст tutorial-envкаталог, если он не существует, а также создаст каталоги внутри него, содержащие копию интерпретатора Python, стандартную библиотеку и различные вспомогательные файлы. ...


Создайте Python 3.7 venv [на операционной системе Python 3.8 / system]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

Добавлено в ~/.bashrc:

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

Тест Python 3.7 venv:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>
Виктория Стюарт
источник
1
Это очень тщательный ответ! :) Я сталкиваюсь с этой проблемой каждый раз, когда мне нужно перенести что-то из Arch Linux в любую другую (например, Debian-ish) систему.
Робби Кэппс
1
@Victoria Stuart, большое спасибо. Это именно то, что я искал.
папочка
4

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

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

    virtualenv --python=/usr/bin/python3 env
  2. Активируйте это:

    source env/bin/activate
Марчин Рапац
источник
3

На окнах:

py -3.4x32 -m venv venv34

или

py -2.6.2 -m venv venv26

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

jnnnnn
источник
3

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

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

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
Дадасо Занзане
источник
2

Я использую 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
brandonbanks
источник
2

Они кажутся немного сложными для Windows. Если вы работаете в Windows с Python 3.3 или более поздней версии, вы можете использовать средство запуска Python, pyчтобы сделать это намного проще. Просто установите другую версию Python и запустите:

py -[my version] -m venv env

Это создаст виртуальную среду, называемую envв вашем текущем каталоге, используя python [my version]. Например:

py -3.7 -m venv env
./env/Scripts/activate

Это создает виртуальную среду envс именем python3.7 и активирует ее. Никаких путей или других сложных вещей не требуется.

Коул Смит
источник
Не должно ли быть py -3.7 -m venv envвместо этого ( -mотсутствует)?
sinoroc
Да, исправлено в посте!
Коул Смит
1

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

Давид Голембиовски
источник
1

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

pip install --upgrade virtualenv

Мохит
источник
1

Как уже упоминалось в нескольких ответах, использование virtualenv является чистым решением. Однако небольшая ловушка, о которой все должны знать, состоит в том, что, если псевдоним для python установлен в bash_aliases, например:

python=python3.6

этот псевдоним также будет использоваться внутри виртуальной среды. Таким образом, в этом сценарии, работающем python -Vвнутри виртуального env, всегда будет выводиться 3.6независимо от того, какой интерпретатор используется для создания среды:

virtualenv venv --python=pythonX.X
PetarMI
источник
0

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

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

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


источник
0

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

virtualenv -p python3 .
Кришна Камаль
источник
0

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

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

Нитин Натх Гири
источник
0

Вот пошаговая инструкция по созданию виртуальной среды в папке кода Visual Studio: я использовал Powershell (режим администратора):
1. Я создаю папку VSCode - «D: \ Code_Python_VE», в которой я хочу создать виртуальную среду.
2. Далее набираю команду - «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
\ activ.bat 5. D: \ Code_Python_VE> ls - появится новый список каталог "project_env".
6. D: \ Code_Python_VE> code. Это запустит Visual Studio 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
    Я надеюсь, что это поможет.
TanuAD
источник
-2

UBUNTU 19.04 / Global Python 3.7.

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

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

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

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

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

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

$ source python38-env / bin / activ

питон -V = питон 3.8

Саймон П
источник