Приклад запуску Django 1.7.4 під Python 3.4.2 на Ubuntu 14.04

Всім привіт.



У даному прикладі я покажу один із способів запуску актуальної версії Django під свіжим Python.

Python 3.4.2 | Release Date: 2014-10-13
Django 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 x86_64 x86_64 x86_64 GNU/Linux

devel787@vbox64:~$ lsb_release-a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu LTS 14.04.1
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 і файл 'вимога.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 Python
virtualenvwrapper | Installation
pyenv | Installation

Blast into PyEnv [18 вересня 2014]
Building Python on Ubuntu with pyenv [02 березня 2014]
Менеджер версій python [25 листопада 2013]
Мульти-хостинг django додатків з допомогою nginx + uwsgi + virtualenv [15 травня 2013]

Writing your first Cloud app, part 1

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.