Babun — установка pip

wget https://bootstrap.pypa.io/get-pip.py -O - | python

PyPA — рабочая группа, занимающаяся разработкой и поддержкой пакетной инфраструктуры в Python.

Web Development with Python and Django

ОтКройТе ГлаЗА!
Вчера утром после деплоя, я посмотрел на этот мир по другому. Почему вы так живете? Почему вы не можете открыть глаза? Мне не нравится что в этом городе нет солнца, что везде заводы и трубы, что холодно и деревья без листьев. Метро – Муравейник роботов. Кто – то из вас тоже робот который боится выйти за границу своего тела, подняться выше метро и заводов. А кто – то меня поймет. Мы другие. Мы выше и мудрее вас. И нас больше чем вы думаете. Я не говорю про Lisp, его я боюсь. Я говорю про Python. Сегодня я уже радовался всем мелочам. Обращая внимание на мелочи рождается совершенство, а совершенство это не мелочи!!! И только Django дало мне это понять. Разве это плохо? Разве плохо быть другим?

Развертывание Django проекта на виртуальном хостинге

Недавно перенес оба-два свои блога на WordPress с Петерхоста на Locum. Пока полет нормальный — Locum дешевле, удобней и стабильнее. Также я рекомендовал этот хостинг заказчику для размещения небольшого Django сайта, который я сейчас разрабатываю. О том, как развернуть Django 1.4 проект на виртуальном хостинге Locum.ru, и пойдет речь в этом посте.

Итак, в панели управления создаем новый проект, например, mysite.

Заходим на сервер по SSH и скачиваем последний virtualenv:


wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py

Создаем виртуальное Python окружение:


python virtualenv.py ~/env/mysite

Флаг --no-site-packages указывать не нужно — теперь это поведение по умолчанию.

Активируем окружение:


source ~/env/mysite/bin/activate

На локальной машине создаем и редактируем файл зависимостей проекта:


pip freeze > req.txt

Заливаем файл на сервер и устанавливаем все необходимые пакеты:


pip install -r req.txt

С подготовкой окружения закончили, переходим непосредственно к работе с проектом. Все проекты находятся в директории ~/projects, в том числе и наш mysite. Locum создает дефолтный проект автоматом, он не нужен — чистим директории apps, media и static. Заливаем проект и дамп базы. Удаляем wsgi.py файл, использовавшийся на локальной машине, правим файл setting.py. Правим django.wsgi файл, созданный хостингом:


#!/usr/bin/python
# -*- coding: utf-8 -*-
activate_this = '/home/hosting_login/env/mysite/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import os
import sys

sys.path.insert(0, '/home/hosting_login/env/mysite/lib/python2.6/site-packages')

sys.path.insert(0, '/home/hosting_login/projects/mysite/apps')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Собираем статику:


python manage.py collectstatic

Перезапускаем приложение кнопкой в панели хостинга или изменением времени редактирования файла django.wsgi


touch django.wsgi

Django Grappelli 2.4

Grappelli — популярный скин для админки Django, еще не поддерживает недавно вышедшую версию 1.4. А пока установить пакет с помощью pip из нужной ветки Git можно так:


pip install -e git+https://github.com/sehmaschine/django-grappelli.git@grappelli_2_4#egg=django-grappelli