Как я могу установить 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