Django – среда обитания. Часть 8 – Синхронизация версий Python и Django

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:

Скачать последнюю  необходимую версии с оф. сайта, и установить ее «поверх» существующей установки.

На данный момент, после действий в предыдущей части, у нас уже стоит последняя версия.

рис.1. Python в Windows

рис.1. Python в Windows

Итак, в Windows стоит Python версии 2.6.4. релиз 75708 от 26/10/2009.

Ubuntu:

Выполнить команды по обновлению системы.

Может быть, можно и просто обновить один Python, точно сейчас сказать не могу. Но, думаю, что т.к. библиотеки на Python используются и ядром системы, лучше обновить ее полностью (пожалуйста, поправьте меня если не так).

Запустим PuTTY, и подключимся к серверу.

Проверим установленную версию:

$ python

рис.2. Python в Ubuntu

рис.2. Python в Ubuntu

В 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

рис.3. Python в Ubuntu после обновления

рис.3. Python в Ubuntu после обновления

Сейчас стоит 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…». После этого у меня открылось окно диалога обновления:

рис.4. Окно диалога обновления TortoiseSVN

рис.4. Окно диалога обновления TortoiseSVN

Обратите внимание, что в поле «Checkout directory» программа сама указала вместо первоначально созданного нами «C:\Python26\Django-Trunk», путь «C:\Python26\Django-Trunk\django». Т.е. обновляемая часть Django лежит только там.

Запустим процесс обновления, нажав кнопку «Ок», и ответив положительно на следующий вопрос.

В конце обновления, наблюдаем следующее окно:

рис.5. Завершение обновления Django программой TortoiseSVN

рис.5. Завершение обновления Django программой TortoiseSVN

(Несмотря на то, что первоначальную установку 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

рис.6. Django в Windows после обновления

рис.6. Django в Windows после обновления

Перед нами версия Django (1,2,0,’alpha’,0)

Закроем консоль Windows, она больше не понадобится.

Ubuntu:

Благодаря особенностям системы и настройкам, сделанными нами ранее, здесь все намного проще.

Итак, подключимся к серверу с помощью PuTTY(если вы отключились), и перейдем в папку, куда мы ставили «Trunk» Django:

$ ls
$ cd django-trunk/

рис.7. Папка django-trunk в Ubuntu

рис.7. Папка django-trunk в Ubuntu

Затем выполним команду:

$ sudo svn update

После окончания обновления (кстати – 11 Мб явно не было скачано, я бы даже сказал, что был загружен мизер), проверим версию Django:

$ python
>>> import django; print django.VERSION

рис.8. Django в Ubuntu после обновления

рис.8. Django в Ubuntu после обновления

Перед нами требуемая версия Django – (1,2,0,’alpha’,0).

Выйдем из интерпретатора Python.

На всякий случай я вновь проверил работоспособность созданного ранее приложения, выполнив перезапуск Apache:

$ sudo /etc/init.d/apache2 restart

И затем набрав «wsgi.mysite.ss/blog» в броузере.

Все по-прежнему работает!

Вот таким образом, за неимением пока других знаний, я думаю держать в «синхронности» Python и Django на сервере и клиентах.

Эта часть, наверняка вызовет критику у более опытных товарищей. Сразу скажу – я на это и рассчитываю :)

Но сейчас главное – данный способ работает. А именно это мне и требуется.

Далее читайте:

Django – среда обитания. Часть 9 – IDE Aptana Studio

Размещено в Django, Python, Ubuntu · Метки: , , , , , ,

Поделитесь своим мнением