четверг, 27 августа 2009 г.

А кончил за упокой...

Для первого нашего Django-проекта я решил использовать South, чтобы меньше заморачиваться с модификациями БД (например, выполнять их автоматически при деплойменте). Всё здорово, но вот в версии 0.5 была подлая "засада" - South не совсем корректно понимал вариант, когда default для полей задавался через callable. Приходилось ручками править определение поля, создавать миграцию, а потом исправлять поле на первоначальный вариант. Однако вышла версия 0.6 и там это было исправлено. "Здорово" подумал я, но не тут-то было :)
Проблема возникла в обновлении версии пакета, который был поставлен в virtualenv через pip. В документации к pip данный вопрос вообще никак не освещается. Путём гугления обнаружилась опция --upgrade, только вот указывать для файла с зависимостями оказалось неверным вариантом, потому как через зависимости тянулся почему-то злосчастный PIL, некорректно устанавливающийся.
Пришлось делать апгрейд пакета отдельно ручками как
pip -E . install --upgrade South
Но в site-packages остаются "концы" от старой версии 0.5, поэтому их пришлось ручками стереть.
Python, конечно, неплохой язык, но вот всё чаще вспоминаются слова dmz про package hell, и это далеко не радует.

среда, 26 августа 2009 г.

Действительно хорошая книга

Начал читать ProDjango и такое ощущение, что из первых 2 глав её я узнал про python больше чем из всей Dive Into Python. Однозначно оценка 5 книжке!

суббота, 22 августа 2009 г.

Толь лыжи не едут...

Понадобилось тут разобраться с интернационализацией в Django, в принципе, вроде всё понятно, но в одном месте вышел "затык". Создаю с помощи комманды файл django.po, компилирую в бинарный формат, запускаю сервер, а там ни намёка на перевод. Наверное не меньше получаса медитировал над документацией и гуглом. Оказалось, что создал я папку conf/locale, где ищется локализация самой джанги, а для других проектов нужна просто locale. Надо просто внимательней читать то, что пишут инструменты (в сообщении conf/locale была просто первой). Хотя такая неоднородность несколько контрастирует c остальными аспектами довольно последовательного Django.