[Из песочницы] Пример запуска Django 1.7.4 под Python 3.4.2 на Ubuntu 14.04
Всем привет.
В данном примере я покажу один из способов запуска актуальной версии Django под свежим Python.
Python 3.4.2 | Release Date: 2014–10–13Django 1.7.4 | January 27, 2015
Будут использованы virtualenvwrapper и pyenv: — virtualenvwrapper будет работать с «системным» python2— используем pyenv для установки последней версии Python— используем virtualenvwrapper для создания виртуального окружения с последней версей Python «внутри»
Информация про системуЗапуск будет производится на Ubuntu 14.04.1 LTS: devel787@vbox64:~$ uname -a Linux vbox64 3.13.0–45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015×86_64×86_64×86_64 GNU/Linux
devel787@vbox64:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty После установки Ubuntu по умолчанию доступен bash:
devel787@vbox64:~$ echo $SHELL /bin/bash
devel787@vbox64:~$ bash --version GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) Также по умолчанию сразу предустановлены 2 версии Python:
devel787@vbox64:~$ python --version Python 2.7.6
devel787@vbox64:~$ python3 --version Python 3.4.0 Установка virtualenvwrapper virtualenvwrapper представляет из себя удобную обёртку вокруг virtualenv.Для установки virtualenvwrapper необходимо выполнить некоторые действия.
Получаем новые списки пакетов Ubuntu:
devel787@vbox64:~$ sudo apt-get update Устанавливаем pip:
devel787@vbox64:~$ sudo apt-get install python-pip Устанавливаем virtualenvwrapper:
devel787@vbox64:~$ sudo pip install virtualenvwrapper Настраиваем virtualenvwrapper:
devel787@vbox64:~$ echo '' >> ~/.bashrc
devel787@vbox64:~$ echo '# virtualenvwrapper' >> ~/.bashrc
devel787@vbox64:~$ echo 'export WORKON_HOME=$HOME/.virtualenvs' >> ~/.bashrc
devel787@vbox64:~$ echo 'export PROJECT_HOME=$HOME/vwrapperhome' >> ~/.bashrc
devel787@vbox64:~$ echo 'source /usr/local/bin/virtualenvwrapper.sh' >> ~/.bashrc
devel787@vbox64:~$ echo '' >> ~/.bashrc Создаём папку для PROJECT_HOME из настроек выше:
devel787@vbox64:~$ mkdir ~/vwrapperhome Применяем настройки:
devel787@vbox64:~$ source ~/.bashrc Теперь у нас должны быть доступны команды virtualenvwrapper, например:
devel787@vbox64:~$ workon
devel787@vbox64:~$ virtualenvwrapper Установка pyenv pyenv представляет из себя удобную утилиту для управления версиями Python.Для установки pyenv необходимо выполнить некоторые действия.
Устанавливаем нужные зависимости:
devel787@vbox64:~$ sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm Устанавливаем git:
devel787@vbox64:~$ sudo apt-get install git Устанавливаем pyenv:
devel787@vbox64:~$ cd
devel787@vbox64:~$ git clone git://github.com/yyuu/pyenv.git .pyenv Настраиваем pyenv:
devel787@vbox64:~$ echo '' >> ~/.bashrc
devel787@vbox64:~$ echo '# pyenv' >> ~/.bashrc
devel787@vbox64:~$ echo 'export PYENV_ROOT=»$HOME/.pyenv»' >> ~/.bashrc
devel787@vbox64:~$ echo 'export PATH=»$PYENV_ROOT/bin:$PATH»' >> ~/.bashrc
devel787@vbox64:~$ echo 'eval »$(pyenv init -)»' >> ~/.bashrc
devel787@vbox64:~$ echo '' >> ~/.bashrc Применяем настройки:
devel787@vbox64:~$ exec $SHELL Теперь у нас должны быть доступны команды pyenv, например можно посмотреть версию утилиты:
devel787@vbox64:~$ pyenv --version pyenv 20150204 Установка Python 3.4.2 pyenv предоставляет возможность установить много разных версий Python.Для просмотра всех доступных версий необходимо выполнить: devel787@vbox64:~$ pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.6.6 2.6.7 2.6.8 2.6.9 2.7-dev 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 3.0.1 3.1-dev 3.1.3 3.1.4 3.1.5 3.2-dev 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.3-dev 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.4.0 3.4-dev 3.4.1 3.4.2 3.5-dev anaconda-1.4.0 anaconda-1.5.0 anaconda-1.5.1 anaconda-1.6.0 anaconda-1.6.1 anaconda-1.7.0 anaconda-1.8.0 anaconda-1.9.0 anaconda-1.9.1 anaconda-1.9.2 anaconda-2.0.0 anaconda-2.0.1 anaconda-2.1.0 anaconda3–2.0.0 anaconda3–2.0.1 anaconda3–2.1.0 ironpython-dev ironpython-2.7.4 ironpython-2.7.5 jython-dev jython-2.5.0 jython-2.5-dev jython-2.5.1 jython-2.5.2 jython-2.5.3 jython-2.5.4-rc1 jython-2.7-beta1 jython-2.7-beta2 jython-2.7-beta3 miniconda-2.2.2 miniconda-3.0.0 miniconda-3.0.4 miniconda-3.0.5 miniconda-3.3.0 miniconda-3.4.2 miniconda-3.7.0 miniconda3–2.2.2 miniconda3–3.0.0 miniconda3–3.0.4 miniconda3–3.0.5 miniconda3–3.3.0 miniconda3–3.4.2 miniconda3–3.7.0 pypy-c-jit-latest pypy-c-nojit-latest pypy-dev pypy-1.5-src pypy-1.5 pypy-1.6 pypy-1.7-dev pypy-1.7 pypy-1.8-dev pypy-1.8 pypy-1.9-dev pypy-1.9 pypy-2.0-dev pypy-2.0-src pypy-2.0 pypy-2.0.1-src pypy-2.0.1 pypy-2.0.2-src pypy-2.0.2 pypy-2.1-src pypy-2.1 pypy-2.2-src pypy-2.2 pypy-2.2.1-src pypy-2.2.1 pypy-2.3-src pypy-2.3 pypy-2.3.1-src pypy-2.3.1 pypy-2.4.0-src pypy-2.4.0 pypy-2.4-beta1-src pypy-2.4-beta1 pypy-2.5.0-src pypy-2.5.0 pypy3-dev pypy3–2.3.1-src pypy3–2.3.1 pypy3–2.4.0-src pypy3–2.4.0 stackless-dev stackless-2.7-dev stackless-2.7.2 stackless-2.7.3 stackless-2.7.4 stackless-2.7.5 stackless-2.7.6 stackless-2.7.7 stackless-2.7.8 stackless-3.2-dev stackless-3.2.2 stackless-3.2.5 stackless-3.3-dev stackless-3.3.5 stackless-3.4.1 Устанавливаем Python 3.4.2:
devel787@vbox64:~$ pyenv install 3.4.2 -v Выполняем 'rehash' (Rebuild the shim binaries. You should do this any time you install a new Python binary):
devel787@vbox64:~$ pyenv rehash Для просмотра установленных версий Python необходимо выполнить:
devel787@vbox64:~$ pyenv versions * system (set by /home/devel787/.pyenv/version) 3.4.2 Создание виртуального окружения Теперь можно создать виртуальное окружение на базе Python 3.4.2.По умолчанию бинарный файл Python 3.4.2 будет доступен в '~/.pyenv/versions/':
devel787@vbox64:~$ ls -lahF ~/.pyenv/versions/3.4.2/bin/python lrwxrwxrwx 1 devel787 devel787 9 Feb 10 16:24 /home/devel787/.pyenv/versions/3.4.2/bin/python → python3.4* Создаём виртуальное окружение (и сразу оказываемся «внутри» него):
devel787@vbox64:~$ mkvirtualenv -p ~/.pyenv/versions/3.4.2/bin/python polls174-py342-venv Проверяем версию Python:
(polls174-py342-venv)devel787@vbox64:~$ python --version Python 3.4.2 Для выхода из виртуального окружения необходимо выполнить:
(polls174-py342-venv)devel787@vbox64:~$ deactivate Для просмотра всех виртуальных окружений необходимо выполнить:
devel787@vbox64:~$ workon polls174-py342-venv Попасть «обратно» в виртуальное окружение можно выполнив:
devel787@vbox64:~$ workon polls174-py342-venv Запуск Django 'polls' app Для демонстрации работоспособности Django 1.7.4 под Python 3.4.2 запустим Django 'polls' app из Django Tutorial.Я создал репозиторий, который содержит выполненный Django Tutorial и файл 'requirements.txt'.
Перейдём в папку для PROJECT_HOME из настроек выше:
(polls174-py342-venv)devel787@vbox64:~$ cd ~/vwrapperhome/ «Склонируем» себе репозиторий, который содержит выполненный Django Tutorial:
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome$ git clone https://github.com/devel787/polls174.git Перейдём в папку с проектом:
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome$ cd polls174/ «Закрепим» папку проекта за нашим виртуальным окружением (при активации окружения мы будем попадать в эту папку):
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome/polls174$ setvirtualenvproject Setting project for polls174-py342-venv to /home/devel787/vwrapperhome/polls174 Установим Django 1.7.4:
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome/polls174$ pip install -r requirements.txt Запустим тесты:
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome/polls174$ python manage.py test Запустим сервер для разработки:
(polls174-py342-venv)devel787@vbox64:~/vwrapperhome/polls174$ python manage.py runserver Теперь можно перейти по ссылкеhttp://127.0.0.1:8000/polls/и увидеть результаты работы данного примера.Для /admin/ Username == Password == 'admin'.
Литература Virtual Environments | The Hitchhiker’s Guide to Pythonvirtualenvwrapper | Installationpyenv | InstallationBlast into PyEnv [18 сентября 2014]Building Python on Ubuntu with pyenv [02 марта 2014]Менеджер версий python [25 ноября 2013]Мульти-хостинг django приложений с помощью nginx + uwsgi + virtualenv [15 мая 2013]
Writing your first Django app, part 1