Установите django1.7 с Python 3.4, используя virtualenv

Я наткнулся на кирпичную стену в отношении настройки django 1.7 с использованием virtualenv, настроенного на Python 3.4.

Я создал виртуальную среду Python 3.4, используя:

sudo virtualenv --no-site-packages -p /usr/bin/python3.4 venv

Затем я активировал env, используя:

source venv/bin/activate

Однажды в активированном virtualenv я попробовал:

sudo pip install https://www.djangoproject.com/download/1.7b1/tarball/

Это устанавливает django в каталог Python 2.7, а не в виртуальную среду. Проверка с помощью pip freeze не показывает установленных пакетов.

Я попытался загрузить zip для django 1.7 и использовать python setup.py install в среде, но установка все равно происходит за пределами env и в каталоге 2.7.

Буду очень признателен за любые советы или указатели на то, что я делаю неправильно!


person campervancoder    schedule 23.04.2014    source источник
comment
Два замечания: 1) --no-site-packages теперь является параметром по умолчанию, поэтому вам не нужно указывать его в своей команде; 2) Django 1.7b2 был выпущен с несколькими исправлениями безопасности, поэтому вы можете изменить свой URL-адрес на djangoproject.com/download/1.7b2/tarball   -  person Rodney Folz    schedule 24.04.2014


Ответы (3)


sudo не требуется при создании virtualenv и при установке с помощью pip внутри virtualenv. Вместо этого попробуйте следующее:

$ virtualenv -p /usr/bin/python3.4 venv

$ source venv/bin/activate

(На этом этапе вы можете убедиться, что ваш virtualenv активен и использует python 3.4 с which python, который должен печатать что-то вроде /home/user/projects/venv/bin/python, и python --version, который должен печатать Python 3.4.x)

$ pip install https://www.djangoproject.com/download/1.7b1/tarball/

person Rodney Folz    schedule 23.04.2014
comment
Спасибо .. Я пытался использовать Sudo, так как у меня были проблемы с разрешениями при установке в lib/python3.4/site-packages, а затем в папку bin в созданном virtualenv .. Я изменил разрешения и установил без sudo .. Это сработало .. - person campervancoder; 24.04.2014

Я думаю, проблема в sudo. Смысл virtualenv в том, что вам не нужно ничего запускать от имени пользователя root — virtualenv создаст среду, в которой вы сможете устанавливать пакеты как пользователь. Я предполагаю, что проблема заключается либо в том, что pip предполагает, что ваше использование sudo предполагает, что вы хотите установить пакет в каталог системных пакетов... либо в том, что сам sudo переопределяет изменения virtualenv в вашей среде в пользу среды root по умолчанию.

Создайте новую виртуальную среду без sudo. Затем активируйте его и запустите pip install без sudo.

person Andrew Gorcester    schedule 23.04.2014

попробуйте подписаться

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

workon py3

pip install Django==1.7.4
person Dadaso Zanzane    schedule 09.10.2015
comment
То, что вы предлагаете, требует установки virtualenvwrapper. - person BringBackCommodore64; 25.02.2016