2014-11-06 3 views
10

Я пытался использовать virtualenvwrapper создать virtualenv как с python2 и Python3Создать virtualenv как с python2 и Python3

Per virtualenv with python2 and python3 via Homebrew Я надеялся, что это будет работать:

(Имя virtualenv является «двойной «)

mkvirtualenv double -p `which python` 
mkvirtualenv double -p `which python3` 

Он упоминает, что

Not overwriting existing python script both/bin/python (you must use both/bin/python3.4) 

Но это не кажется правдой. Типография pythonpython2.7python3 и python3.4 все начинаются с python3.4 переводчиком.

+8

Что вы пытаетесь сделать, выполнив это? Основное преимущество virtualenvs - обтекание отдельных миров для Python 2 и Python 3. – Kevin

+1

Я работаю над проектом, который работает как в python2, так и в python3. Я не хочу постоянно менять virtualenv. python2 и python3 имеют свою собственную версию пакетов и хранилищ сайтов-пакетов в разных местах, поэтому я не вижу проблемы. – Zweedeend

+6

Если цель заключается в тестировании проекта, используйте вместо этого токен для запуска тестов в Python 2 и 3. В противном случае я предлагаю разработать его в 3.x и запустить его в 2 отдельно. Все упомянутые здесь инструменты были разработаны с учетом одного Python для каждого виртуального, так что, возможно, изначально все работает, нет гарантии, что он будет продолжать работать. –

ответ

13

Извините, virtualenv предназначен для поддержки версии с одним интерпретатором.

Если вам нужно использовать несколько версий python на одной и той же кодовой базе, создайте отдельные виртуальные среды.

0

У меня есть решение для этого с участием Vagrant/VirtualBox ... (он имеет мою установку начальной загрузки для запуска Джанго probject, но вилка его и идти дикой природы с ним!)

пакет здесь, https://github.com/andrewyoung1991/python-3.4.1-vagrant-bootstrap.git virtual-env, к сожалению, является игрой с одним питоном, но с VirtualBox вы можете свободно работать в песочнице, вызывающей python2 или python3

3

virtualenv поможет вам изолировать среды.

Он не может поддерживать несколько версий python в одно и то же время. Вы можете попробовать pyenv и pyenv-virtualenv. Он поддерживает замену папки на другую версию python и рабочую среду. Это очень легко переключает версию.

Если вы не можете установить pyenv и работать на Mac. anyenv может помочь вам установить pyenv.

Пример:

$ pyenv install 3.4.1 
$ pyenv install 2.7.6 
$ pyenv virtualenv 3.4.1 mypy3 
$ pyenv virtualenv 2.7.6 mypy2 
$ pyenv versions 
    * system 
    3.4.1 
    2.7.6 
    mypy3 

$ cd /work/ 
$ pyenv local mypy3  # Use Py3 now 
$ pyenv local mypy2  # Use Py2 now 
5

virtualenv не поддерживает несколько версий интерпретатора. Мое предложение состоит в том, чтобы использовать разные среды для каждой из версий:

virtualenv -p /usr/bin/python3.3 py3env 
virtualenv -p /usr/bin/python py2env 
Смежные вопросы