Використовуйте різні версії Python з virtualenv


1113

У мене зараз система Debian працює з python 2.5.4. Я встановив віртуаленв належним чином, все працює нормально. Чи є можливість я використовувати virtualenv з іншою версією Python?

Я склав Python 2.6.2 і хотів би використовувати його з деякими virtualenv. Чи достатньо перезаписати двійковий файл? Або я повинен щось змінити стосовно бібліотек?


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
упередженість

64
Мені щось тут не вистачає - чи не вимагає, що в системі вже встановлено 2.6? Я подумав, що сенс virtualenv полягає в тому, що я можу мати інший варіант python, крім основного (у моєму випадку 2.4 на CentOS). Я припускав, що я можу встановити virtualenv, а потім встановити під ним Python 2.6 для пакетів у env для використання?
Джон С

42
@John так, ти є. Це не сенс virtualenv: суть у тому, щоб створити середовище з пісочницею для Python. Спершу вам потрібно буде встановити цю версію - ви можете встановити її локально для свого користувача.
Даніель Роузман

8
@JohnC Ви можете використовувати pythonbrew для встановлення альтернативних пітонів.
ясен

54
Якщо ви трохи лінивий:virtualenv -p `which python2.6` <path/to/new/virtualenv>
палахкотять

293

Починаючи з 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 / ...
Laryx децидуальної

1
"Зверніть увагу, що venvце не дозволяє створювати virtualenv з іншими версіями Python." - Ви впевнені, що це правда? Мені здається, це спрацює нормально для мене, якщо я створюю його з певною версією Python, наприклад python3.5 -m venv <myenvname>(за умови, що у мене є така версія Python).
Домінік Пасторе

5
Підтвердження, що спостереження @ Ніка працює: Спосіб створення 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   

Звичайно, це може бути застосовано до будь-якої ситуації, коли ви хочете повторити точне середовище, в якому працюєте та розгортаєтесь.


2
Не могли б ви пояснити, навіщо це робити саме так: навіщо встановлювати python локально? І що ще важливіше, чому встановлювати virtualenv за допомогою версії python, яку ви хочете використовувати з ним ?
lajarre

15
впевнений. Якщо ви перебуваєте у віртуальному середовищі хостингу, і сервер надає старіші версії python, якими ви не задоволені - таким був мій випадок. Крім того, якщо вам трапляється розробляти проекти на різних серверах і ви хочете копіювати ці середовища на вашій локальній машині .... Virtualenv створює жорсткі посилання на python libs. тому це дуже важливо з версією python, яку ви використовуєте для установки та створення Virtualenv з.
zzart

6
Або якщо ви схожі на мене і працюєте на зафіксованій машині на роботі без привілеїв судо. Локальні копії бібліотек, баз даних 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>

2
Дивіться мою відповідь нижче щодо еквівалентного рішення, використовуючи змінні середовища. Такий підхід означає, що вам не потрібно пам’ятати використовувати -p.
Кріс Джонсон

5
Чи не існує рішення, яке перемикається між версіями python, не вимагаючи створення нового віртуального середовища?
Чарлі Паркер

3
Чи спрацювало б це, якщо ви хочете встановити версію python, яка не встановлена ​​у вашій системі? Скажіть, ви хочете перевірити, python3.6але не хочете торкатися python3.5встановленого на вашому комп’ютері?
alpha_989

1
@ alpha_989 Ви знаходите рішення для цього?
Даніїл Машкін

96

Є простіший спосіб,

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`

1
FYI, працює лише у тому випадку, коли у вас встановлений python2.7 на системному рівні (наприклад, /usr/bin/python2.7)
kingb12

Я був в змозі зробити це з virtualenv venv --python=python3.6а
Йорданія

Фактично ви можете скинути незначний номер версії. virtualenv env --python=python2
Аншул

Це правильне рішення, коли у вас є всі версії, вам цікаво просто використовувати псевдонім не повним шляхом
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   

щоб побачити, що це за версія пітона. Якщо ви бачите щось на кшталт:

 $ 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) Системний пітон працює /usr/bin, тоді як різні версії python, які я встановив, за замовчуванням встановлювались у:

 /usr/local/bin

3) Різні пітони я встановив мають імена , як python2.7або python3.2, і я можу використовувати ці імена , а не повні шляхи.

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

1) У мене виникли проблеми із залученням до роботи virtualenvrapper. Це те, що я закінчив вводити ~/.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 працює по-різному: я повинен вказати повний шлях до інтерпретатора 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. Це зберігає всі ваші середовища в одному місці.


which pipне розповідає мені версію Python. Це дає мені це /usr/local/bin/pip.
Санкальп

@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 тощо
Yash Sharma

21

Припустимо, у вас зараз у вашому 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в оболонці, щоб перевірити, чи оновлена ​​ваша версія.


Дивіться мою відповідь нижче щодо еквівалентного рішення, використовуючи змінні середовища. Такий підхід означає, що вам не потрібно пам’ятати використовувати -p.
Кріс Джонсон

13

Ви можете зателефонувати virtualenvз потрібною версією python. Наприклад:

python3 -m virtualenv venv

Або ж безпосередньо вкажіть на свій шлях virtualenv. наприклад для вікон:

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>


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

Це не працює. Моя версія пітона досі 3.
shivendra pratap singh

6

На mac я використовую pyenv та virtualenvwrapper. Мені довелося створити новий віртуаленв. Вам потрібен домашній пив, який, я вважаю, ви встановили, якщо ви на 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

Команда повинна бути mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}версіями, а не версією. Якщо ТАК дозволяв короткі зміни, я б це виправив.
Мартін Берч

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]:

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 венв:

$ 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, дуже дякую Це саме те, що я шукав.
daddyodevil

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пускач, який знайде правильний питон, який можна виконати (якщо припустимо, що він встановлений).


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$ 


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

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

0

Він працював для мене на windows з установкою python 2:

  1. Крок 1: Встановіть версію python 3.
  2. Крок 2. Створіть папку env для віртуального середовища.
  3. Крок 3: c: \ Python37 \ python -m venv c: \ path \ to \ env.

Ось як я створив віртуальне середовище Python 3 на моїй існуючій установці python 2.



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 встановити 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 - у цьому списку з’явиться новий каталог "project_env".
6. D: \ Code_Python_VE> код. Це запустить Visual Studio Code. Переконайтесь, що команда (код.).
7. Створіть start.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).

  1. Натисніть F1 у коді студії Visual, і панель команд відкриється - Виберіть Python Interpreter та виберіть віртуальне середовище project_env.
  2. Додайте файл test.py з одним друком заяви ("Hello World").
  3. Запустіть цю програму.
  4. У візуальному терміналі коду Visual Studio -
    (project_env) d: \ Code_Python_VE> python -m pip install - update,
    я сподіваюся, що це допоможе.

-2

UBUNTU 19.04 / Global Python 3.7.

Це працювало для мене, дозволяючи середовищу Python 3.8, використовуючи рекомендований venv для розробки python 3.

Встановіть модуль 3,8 та 3,8 venv

$ sudo apt встановіть python3.8 python3.8-venv ## плюс будь-які інші необхідні вам модулі

Створіть свою віртуальну програму Env, використовуючи потрібну версію python у цій програмі

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

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

$ source python38-env / bin / activate

python -V = python 3.8

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.