Django – среда обитания. Часть 8 – Синхронизация версий Python и Django
У тех из вас, кто прочитал предыдущие части статьи, и следовал рекомендациям, в них даваемым, наверняка возникнет вопрос: «А зачем необходимо было ставить Python и Django еще и в Windows?». Постараюсь ответить кратко и как можно более понятно.
Несмотря на то, что Python и Django уже установлены на web-сервере ЛС в Ubuntu, и мы можем уже создавать работоспособные приложения, все же необходимо установить их и в Widows.
Как вы помните, для проектов мы создали «расшаренный» ресурс «django-projects». Доступ к нему будем осуществлять по ЛС с компьютеров, работающих на Windows (по крайней мере, я так буду делать). На данный момент программы Windows я знаю гораздо лучше Linux’овых. Т.е. проблем с переходом на фактически новую для меня платформу, я смогу избежать (в конце – концов именно из-за этого я все и затеял).
Сейчас в статье упоминался лишь простейший редактор для правки файлов проекта. Но для дальнейшей работы желателен инструмент «посолиднее». Как я уже писал, для меня, это будет IDE Aptana. Чтобы в полной мере воспользоваться всеми преимуществами, которые дает использование данной IDE (например, «автодополнение» для Python и Django), на компьютере, где будет запускаться Aptana, должен быть доступ к библиотекам языка Python. Вот, собственно, из-за них то и весь «сыр-бор». Ну и как «побочный плюс» – вы сможете без включения сервера творить что-либо на Python и Django, иногда это может потребоваться.
Получилось не очень кратко, но, надеюсь, понятно :)
Из вышесказанного, плавно вытекает необходимость иметь идентичные версии Python и Django на web-сервере (далее просто – «сервере»), и на рабочем компьютере Windows (далее – «клиенте»).
Наверняка существует много способов этого добиться как «вручную» так и с помощью специальных программ. Я попробую описать простейший подход, который (по крайней мере в начале) я буду использовать.
Постараемся получить на сервере и клиенте следующее:
- Версии языка Python должны быть полностью одинаковы (т.е. у нас это 2.6.4)
- Релизы языка Python максимально близки друг к другу
- Версии Django должны так же быть полностью одинаковы
Итак, приступим…
1. Версии и релизы языка Python:
Windows:
Скачать последнюю необходимую версии с оф. сайта, и установить ее «поверх» существующей установки.
На данный момент, после действий в предыдущей части, у нас уже стоит последняя версия.
Итак, в Windows стоит Python версии 2.6.4. релиз 75708 от 26/10/2009.
Ubuntu:
Выполнить команды по обновлению системы.
Может быть, можно и просто обновить один Python, точно сейчас сказать не могу. Но, думаю, что т.к. библиотеки на Python используются и ядром системы, лучше обновить ее полностью (пожалуйста, поправьте меня если не так).
Запустим PuTTY, и подключимся к серверу.
Проверим установленную версию:
$ python
В Ubuntu имеем Python версии 2.6.4. релиз 75706 от 02/11/2009.
Я думаю, что в этом случае обновление Python в Ubuntu не нужна. Т.е. такое небольшое отличие вряд ли коснулось состава библиотек, скорее всего, исправлены мелкие недочеты в реализации. Тем более, что несмотря на то, что номер релиза меньше, дата явно «посвежее».
Но для провокации эксперимента, я все же его (обновление) выполню.
Итак, выйдем из интерпретатора Python («Ctrl+d») и наберем последовательно 2-е команды, отвечая согласием на все вопросы, которые могут возникнуть в процессе их выполнения:
$ sudo apt-get update
$ sudo apt-get upgrade
Когда после второй команды началось обновление системы, то первое, что стало обновляться – были как раз библиотеки Python2.6.
Проверим версию Python после обновления:
$ python
Сейчас стоит Python версии 2.6.4 . релиз 75706 от 07/12/09.
Т.е. дата стала еще новее, а номер релиза остался тот же. Это только подтверждает мой первоначальный позыв – ничего не обновлять при таких мелких несоответствиях (хотя, может быть, я и неправ).
На всякий случай я проверил работоспособность созданного ранее приложения, выполнив перезапуск Apache:
$ sudo /etc/init.d/apache2 restart
И затем набрав «wsgi.mysite.ss/blog» в броузере.
Все пока работает :)
2. Версии Django из «Trunk’а»
Сейчас на сервере и клиенте стоят одинаковые версии (как мы убедились в прошлой части). Но тем не менее, я опишу процесс обновления Django в обоих местах.
Windows:
Находясь в папке, куда я скачал Django «C:\Python26\Django-Trunk», на пустом месте, необходимо нажать правую кнопку мышки. Затем в меню выбрать «SVN Checkout…». После этого у меня открылось окно диалога обновления:
Обратите внимание, что в поле «Checkout directory» программа сама указала вместо первоначально созданного нами «C:\Python26\Django-Trunk», путь «C:\Python26\Django-Trunk\django». Т.е. обновляемая часть Django лежит только там.
Запустим процесс обновления, нажав кнопку «Ок», и ответив положительно на следующий вопрос.
В конце обновления, наблюдаем следующее окно:
(Несмотря на то, что первоначальную установку Django, описанную в предыдущей части, я делал менее 5 часов назад, у меня скачались все те-же ~11 Мб. Наверняка я сделал что-то не так, но на результат, как увидим далее, это не повлияло)
Нажимаем «Ок»…
Далее нам понадобится консоль Windows, откроем ее и перейдем в папку «C:\Python26\Django-Trunk».
Для этого, запустим «cmd.exe» («лежит» она в «C:\Windows\System32») и выполним следующие команды:
cd c:\Python26\Django-Trunk
python setup.py install
Т.е. мы заново поставили Django.
(Хотя может и достаточно просто скопировать папку «django» в каталог пакетов Python, поверх существующей. Мне понравился процесс обновления в Ubuntu (см.далее), если есть способ делать аналогично под Windows – поделитесь)
Проверим установку.
Запустим интерпретатор Python, и в ответ на приглашение «>>>» введем стандартное
>>>import django; print django.VERSION
Перед нами версия Django (1,2,0,’alpha’,0)
Закроем консоль Windows, она больше не понадобится.
Ubuntu:
Благодаря особенностям системы и настройкам, сделанными нами ранее, здесь все намного проще.
Итак, подключимся к серверу с помощью PuTTY(если вы отключились), и перейдем в папку, куда мы ставили «Trunk» Django:
$ ls
$ cd django-trunk/
Затем выполним команду:
$ sudo svn update
После окончания обновления (кстати – 11 Мб явно не было скачано, я бы даже сказал, что был загружен мизер), проверим версию Django:
$ python
>>> import django; print django.VERSION
Перед нами требуемая версия Django – (1,2,0,’alpha’,0).
Выйдем из интерпретатора Python.
На всякий случай я вновь проверил работоспособность созданного ранее приложения, выполнив перезапуск Apache:
$ sudo /etc/init.d/apache2 restart
И затем набрав «wsgi.mysite.ss/blog» в броузере.
Все по-прежнему работает!
Вот таким образом, за неимением пока других знаний, я думаю держать в «синхронности» Python и Django на сервере и клиентах.
Эта часть, наверняка вызовет критику у более опытных товарищей. Сразу скажу – я на это и рассчитываю :)
Но сейчас главное – данный способ работает. А именно это мне и требуется.
Далее читайте:







