Ответ 1
просто запустите
virtualenv -p python3 envname
Обновление после редактирования OP:
В OP версии virtualenv произошла ошибка, описанная здесь здесь. Проблема была устранена при запуске:
pip install --upgrade virtualenv
Используя virtualenv, я запускаю свои проекты с версией Python (2.7) по умолчанию. В одном проекте мне нужно использовать Python 3.4.
Я использовал brew install python3
для установки на моем Mac. Теперь, как мне создать virtualenv, который использует новую версию?
например. sudo virtualenv envPython3
Если я попробую:
virtualenv -p python3 test
Я получаю:
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
import os
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable
просто запустите
virtualenv -p python3 envname
Обновление после редактирования OP:
В OP версии virtualenv произошла ошибка, описанная здесь здесь. Проблема была устранена при запуске:
pip install --upgrade virtualenv
Python 3 имеет встроенную поддержку виртуальных сред - venv. Возможно, лучше использовать это. Ссылаясь на документы:
Создание виртуальных сред осуществляется путем выполнения pyvenv script:
pyvenv /path/to/new/virtual/environment
Обновление для Python 3.6 и новее:
Как pawciobiel правильно комментарии, pyvenv
есть устарел с Python 3.6, и новый способ:
python3 -m venv /path/to/new/virtual/environment
Установить предпосылки.
sudo apt-get install python3 python3-pip virtualenvwrapper
Создайте виртуальную среду на основе Python3. При желании включите --system-site-packages
.
mkvirtualenv -p /usr/bin/python3 <venv-name>
Установить в виртуальную среду.
workon <venv-name>
Установите другие требования, используя менеджер пакетов pip
.
pip install -r requirements.txt
pip install <package_name>
При одновременной работе с несколькими проектами Python обычно рекомендуется устанавливать общие пакеты, такие как pdbpp
глобально, а затем повторно использовать их в virtualenvs.
Использование этого метода экономит много времени, затрачиваемого на выборку пакетов и их установку, за исключением использования минимального дискового пространства и пропускной способности сети.
sudo -H pip3 -v install pdbpp
mkvirtualenv -p $(which python3) --system-site-packages <venv-name>
Если существует много общесистемных пакетов Python, то рекомендуется не использовать --system-site-packages
особенно во время разработки, так как я заметил, что это сильно замедляет запуск Django. Я предполагаю, что инициализация среды Django - это сканирование вручную и добавление всех пакетов сайта по системному пути, что может быть причиной. Даже python manage.py shell
становится очень медленным.
Сказав тот эксперимент, какой вариант работает лучше. Может быть безопасно просто пропустить --system-site-packages
для проектов Django.
I'v попробовал pyenv, и это очень удобно для переключения версий python (глобальных, локальных в папке или в virtualenv):
brew install pyenv
затем установите нужную версию Python:
pyenv install 3.5.0
и просто создайте virtualenv с помощью пути к необходимой версии интерпретатора:
virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv
Что это, проверьте версию:
. ./myenv/bin/activate && python -V
Есть также плагин для pyenv pyenv-virtualenv, но это не сработало для меня как-то.
virtualenv --python=/usr/bin/python3 <name of env>
работал у меня.
Вы можете указать конкретную версию Python при создании среды.
Это упомянуто в virtualenv.py
virtualenv --python=python3.5 envname
В некоторых случаях это должен быть полный путь к исполняемому файлу:
virtualenv --python=/Users/username/.pyenv/versions/3.6.0/bin/python3.6 envname
Как работает -p
parser.add_option(
'-p', '--python',
dest='python',
metavar='PYTHON_EXE',
help='The Python interpreter to use, e.g., --python=python3.5 will use the python3.5 '
'interpreter to create the new environment. The default is the interpreter that '
'virtualenv was installed with (%s)' % sys.executable)
У меня было такое же сообщение ERROR
. Решение tbrisker в моем случае не работало. Вместо этого это решило проблему:
$ python3 -m venv .env
В дополнение к другим ответам, я рекомендую проверить, какой экземпляр virtualenv вы выполняете:
which virtualenv
Если это что-то появляется в /usr/local/bin, то возможно - даже, вероятно, что вы установили virtualenv (возможно, используя экземпляр easy_tools или pip) без использования диспетчера системных пакетов (brew в OP дело). Это была моя проблема.
Несколько лет назад - когда я был еще более невежественным - я установил virtualenv, и он маскировал мой системный пакет, предоставленный virtualenv.
После удаления старого, сломанного virtualenv, мои проблемы исчезли.
Теперь Python имеет собственную реализацию виртуальной среды под названием "venv". Я бы предложил использовать это вместо virtualenv.
Цитата из venv - docs,
Устаревший с версии 3.6: pyvenv был рекомендованным инструментом для создание виртуальных сред для Python 3.3 и 3.4 и устарел в Python 3.6.
Изменено в версии 3.5: Использование venv теперь рекомендуется для создание виртуальных сред.
Для окон, чтобы инициировать venv в каком-либо проекте, откройте cmd:
python -m venv "c:\path\to\myenv"
(Предлагает использовать двойную цитату вокруг пути каталога, если она содержит любые пробелы. Ex: "C:/My Dox/Spaced Directory/Something" )
Как только venv настроен, вы увидите несколько новых папок внутри вашего каталога проектов. Одним из них будет "Сценарии".
Для активации или вызова venv вам необходимо:
C:\> <venv>\Scripts\activate.bat
Вы можете деактивировать виртуальную среду, введя "деактивировать" в своей оболочке. С этим вы теперь готовы к установке ваших конкретных проектов, которые будут находиться в папке "Lib".
============================== Редактирование 1 ============= ======================= Сценарий, который будет обсуждаться ниже, не является тем, что первоначально было задано, просто добавив это, если кто-то использует vscode с расширением python
В случае, если вы используете vs-код с расширением python, у вас может возникнуть проблема с его пилингом, который указывает на глобальную установку. В этом случае pylint не сможет увидеть модули, установленные в вашей виртуальной среде, и, следовательно, будет показывать ошибки при импорте.
Здесь - простой способ преодолеть это.
cd Workspace\Scripts
.\Activate.ps1
code .
Мы в основном активируем среду сначала, а затем вызываем vs-код, так что pylint запускается внутри среды и может видеть все локальные пакеты.
В python3.6 я пробовал python3 -m venv myenv
согласно документации, но это python3 -m venv myenv
так много времени. Таким образом, очень простая и быстрая команда - это python -m venv yourenv
Это сработало для меня на python3.6.
На Mac я должен был сделать следующее, чтобы заставить его работать.
mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere
Если вы установите python3 (brew install python3
) вместе с virtualenv burrito, вы можете сделать mkvirtualenv -p $(which python3) env_name
Конечно, я знаю, что virtualenv burrito - это всего лишь обертка, но за эти годы он отлично меня обслуживал, уменьшая некоторые кривые обучения.
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
это добавит python3
путь для вашего виртуального окружения.
Он работал у меня
virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
Для тех, у кого есть проблемы при работе с Anaconda3 (Python 3).
Вы можете использовать
conda create -n name_of_your_virtualenv python=python_version
Чтобы активировать среду (Linux, MacOS)
source activate name_of_your_virtualenv
Для Windows
activate name_of_your_virtualenv
Я пробовал все вышеперечисленные вещи, это все еще не сработало. Так как грубая сила, я просто переустановил anaconda, снова установил virtualenv... и это сработало.
Amans-MacBook-Pro:~ amanmadan$ pip install virtualenv
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting virtualenv
Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB)
100% |████████████████████████████████| 3.5MB 114kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.0.3
Amans-MacBook-Pro:python amanmadan$ virtualenv my_env
New python executable in /Users/amanmadan/Documents/HadoopStuff/python/my_env/bin/python
Installing setuptools, pip, wheel...done.
Amans-MacBook-Pro:python amanmadan$
Я хотел сохранить версию python 2.7.5 как версию по умолчанию на Centos 7, но имеет python 3.6.1 в виртуальной среде, работающей рядом с другими виртуальными средами в python 2.x
Я нашел ссылку ниже лучшим решением для новейшей версии python (python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming-environment-for-python-3. Он показывает шаги для разных платформ, но основные шаги
Для тех из вас, кто использует pipenv и хочет установить определенную версию:
pipenv install --python 3.6
Это все, что вам нужно для запуска виртуальной среды в python/python3
Сначала убедитесь, что у вас есть virtualenv, а теперь
Бежать:
virtualenv -p python3 <env name>
Иногда происходит сбой, просто используйте это:
python3 -m virtualenv <env_name> # you can specify full path instead <env_name> to install the file in a different location other than the current location
Чтобы запустить это:
source <env_name>/bin/activate
Или же:
source 'pwd'/<env_name>/bin/activate
Запустить (для выхода):
deactivate
Я получил ту же ошибку из-за того, что это был конфликт с установкой miniconda3, поэтому, когда вы вводите "какой virtualenv", и если вы установили miniconda и указали на эту установку, вы можете либо удалить ее (если вы, как я, и гавань пока не переместился к нему) или измените переменную среды, чтобы указать на нужную вам установку.