Как я могу установить Django для Python 3.x?

Я установил Django с помощью этой команды:

sudo apt-get install python-django

И он установил версию 1.5.4-1ubuntu1. Документы Django говорят, что начиная с версии 1.5, Django поддерживает Python 3. Тем не менее, когда я запускаю интерпретатор python 3 и пытаюсь импортировать Django, он говорит, что такого модуля нет. Я пытался найти версию Django на python3, но такого пакета не существует. Как я могу заставить django работать на python3? Я бы предпочел использовать пакеты Ubuntu вместо установки вещей вручную.

32
задан 6 January 2014 в 22:59

4 ответа

Я бы настоятельно рекомендовал избегать pip3 установки вещей в системные пакеты сайта. Я привел эти аргументы до , но я дам вам примечания:

  • Обновления системы разрушают все
  • Установка пакетов apt может перезаписывать вещи, установленные в pip
  • Конфликт версий
  • Обновления дистрибутива непредсказуемы хаос . Шутки в сторону. Я потерял волосы к ним.

Я бы настоятельно рекомендовал использовать virtualenv. Это огромная боль в том, чтобы начать работу, но как только вы ее настроите, у вас будет полная среда Python под вашим полным контролем. Это означает больше работы (вам придется проверять наличие обновлений, а pip пока не очень помогает), но вам не нужно беспокоиться о том, что делает Ubuntu.

У меня есть среда для каждого сайта (я просто нахожусь в подкаталоге с именем venv). Некоторые люди, включая меня, когда-то давно, предпочитают делить свою среду между несколькими сайтами. Я обнаружил, что это проще поддерживать с точки зрения выпуска обновлений, но некоторые сайты могут быть хрупкими или требовать старых версий, и это сдерживает всю среду. YMMV.

С точки зрения установки этого, и просто чтобы дать мне пощечину, virtualenv еще не упакован для Python 3, поэтому мы должны использовать pip3:

$ sudo pip3 install virtualenv
...

$ virtualenv-3.3 myenv
Using base prefix '/usr'
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.

$ source myenv/bin/activate  # This is important!

Ваш bash PS1 теперь следует добавить (myenv), чтобы вы знали, что находитесь в другой среде. Мы можем проверить среду, чтобы убедиться, что мы находимся на правильных версиях вещей (не используя системные версии для начинающих):

$ python --version
Python 3.3.2+
$ which python pip 
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip

И тогда вы можете просто продолжать, как если бы вы были хозяином вселенной. , Вам больше не нужен root для использования pip, и вам не нужно указывать pip3. Просто намного дружелюбнее.

$ pip install django umemcache
...

Если вы используете что-то вроде uwsgi для размещения этого (вы должны), используйте его флаг -H (или аргумент home config), чтобы сообщить ему, где находится среда Python.

Что касается упрощения разработки, вы можете автоматически «смонтировать» свою среду virtualenv. Существует много сценариев, но этот - мой (он живет в нижней части моего ~/.bashrc:

export VENVDIR="/web"
export VENVDIR_VENV="$VENVDIR/venv"

venvcd() {
        wd=$(pwd)
        [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]] && wasin=true || unset wasin

        builtin cd "$@"

        wd=$(pwd)
        if [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]]; then
                source $VENVDIR_VENV/bin/activate
        else
                [ $wasin ] && deactivate
        fi
}
alias cd="venvcd"

cd .

Всякий раз, когда я cd перехожу на /web (где хранятся все мои сайты по разработке) , он монтирует virtualenv для меня. Обратите внимание, что у меня есть только одна среда для всех моих сайтов, так что это подойдет вам, только если вы сделаете что-то подобное. Есть много других способов сделать подобные вещи .

0
ответ дан 6 January 2014 в 22:59

Я понял, как это сделать с pip. Оказывается, мне нужно pip3:

sudo pip3 install Django

сделали свое дело.

Возможно, вам понадобится получить pip3:

sudo apt-get install python3-pip
0
ответ дан 6 January 2014 в 22:59

Django для Python3 был добавлен недавно. Просто введите в терминал:

apt-get install python3-django

0
ответ дан 6 January 2014 в 22:59

Ребята, есть простой способ использовать virtualenvwrapper , безусловно, самое простое для управления виртуальными средами Python 2.7 / 3.x в Ubuntu / Debian.

$ sudo apt-get install python3 virtualenvwrapper
$ mkvirtualenv <venv> -p python3
$ workon <venv> # sets into the virtualenv from any terminal.

Опционально разрешите --system-site-packages повторно использовать пакеты глобального сайта.
virtualenv устанавливает pip и другие инструменты настройки python, чтобы помочь нам быстрее начать работу.

$ pip install Django
$ pip install -r requirements.txt
0
ответ дан 6 January 2014 в 22:59

Другие вопросы по тегам:

Похожие вопросы: