Как я могу установить 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 вместо установки вещей вручную.

4 ответа

Решение

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

sudo pip3 install Django

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

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

sudo apt-get install python3-pip

Я настоятельно рекомендую избегать 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. Обратите внимание, что у меня есть только одна среда для всех моих сайтов, поэтому она подойдет вам только в том случае, если вы делаете что-то подобное. Есть много других способов сделать подобные вещи.

Django для Python3 был добавлен недавно. Так что просто введите в терминале:

apt-get install python3-django

Ребята, есть простой способ использовать 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
Другие вопросы по тегам