Решил поднять вышеозначенное окружение на своем ноутбуке, а сделать это оказалось не так просто, как мне казалось, это и сподвигло меня написать данную статью. Надеюсь, начинающим она поможет.
Наверное, и так не трудно догадаться, но я все же решил написать:
Думаю, процесс установки двух первых компонентов списка мы смело можем опустить. Будем считать, что денвер стоит так, как предлагается по умолчанию:
Python в таком случае должен расположиться по адресу
Однако перед тем, как устанавливать django, нам необходимо выполнить кое-какие действия. Так-как denwer устанавливается достаточно обособлено от всей системы, необходимо будет добавить путь до интерпритатора в переменную Path.
Для тех, кто не знает — заходим в свойства системы > Дополнительные параметры > Переменные среды
и вносим в переменную Path путь до интерпритатора python: C:\WebServers\usr\local\python\
После чего можно проверить, можем ли мы обращаться к интерпритатору, не прописывая путь до него. В командной строке выполняем
и в ответ должны получить:
Если вы, как и я, скачали виндовые установщики (.exe) mod_python и библиотек БД, то наверняка столкнетесь с тем, что эти самые установщики ругнутся на отсутствие данных об установленном python 2.5 в реестре windows.
Решаем эту проблему, внося данные вручную:
После этого установка происходит без проблем. Можно упомянуть только о том, что в процессе установки mod_python необходимо будет указать папку, где установлен Apache — C:\WebServers\usr\local\apache\.
Возможно, данная часть даже не заслуживает заголовка, но, тем не менее, для тех, ктопривык к битриксу, не заглядывал в документацию, я ее буквально процитирую.
Распаковываем архив, запускаем командную строку и заходим в директорию, в которую распаковали django. Выполняем:
все.
Предположим, что свой проект мы хотим разместить на одном из виртуальных хостов, а на других в этот момент могут продолжать вертеться другие проекты на php или на чем то другом.
Для нашего виртуального хоста потребуется индивидуальная настройка, а денвер создает блоки виртуальных хостов автоматически и по шаблону. Виртуальными хостами он делает все, что лежит в папке home.
Чтобы для одного из этих хостов определить свои специфические параметры, это необходимо сделать в httpd.conf. Впрочем, этот момент достаточно подробно описан в самом файле httpd.conf.
Предположим, что нам хотелось бы иметь проект на django по адресу dproject.dev. Я сделал следующее: создал директорию
Затем перешел в данную директорию в командной строке и создал там проект
в итоге должна появиться директория
Ну и наконец блок виртуального хоста, который добавил в httpd.conf:
Практически все, что тут написано, объясняется в документации, я лишь объясню что алиас /admin_media/ и соответствующий блок Location нужны для статики админки django (img, css, etc). Чтобы админка django использовала данный адрес, необходимо поправить settings.py созданного проекта:
На этом все. Если у вас что-то не получилось, постараюсь помочь в комментах.
Я буду благодарен всем за дельные советы.
А еще можно было бы дописать в эту статью инструкции для подключения wsgi_module для этого же проекта.
А т.к. я не очень то силен в настройках windows, я не смог сделать так, чтобы не приходилось каждый раз набирать python для выполнения пайтоновской программы… Было бы куда лучше
Что потребуется
Наверное, и так не трудно догадаться, но я все же решил написать:
- естественно, сам денвер,
- пакет с ActivePython 2.5 для denwer-a,
- mod_python для windows, python 2.5
- свежий дистрибутив django,
- Библиотека для работы с базой данных, например, PostgeSQL или MySQL.
(я ставил обе, mysql-python выкачивал версии 1.2.2 под windows)
Denwer и ActivePython 2.5
Думаю, процесс установки двух первых компонентов списка мы смело можем опустить. Будем считать, что денвер стоит так, как предлагается по умолчанию:
C:\WebServers
, Виртуальный диск Z:\Python в таком случае должен расположиться по адресу
C:\WebServers\usr\local\python
Однако перед тем, как устанавливать django, нам необходимо выполнить кое-какие действия. Так-как denwer устанавливается достаточно обособлено от всей системы, необходимо будет добавить путь до интерпритатора в переменную Path.
Для тех, кто не знает — заходим в свойства системы > Дополнительные параметры > Переменные среды
и вносим в переменную Path путь до интерпритатора python: C:\WebServers\usr\local\python\
После чего можно проверить, можем ли мы обращаться к интерпритатору, не прописывая путь до него. В командной строке выполняем
python -V
,и в ответ должны получить:
Python 2.5.1
.Установка mod_python, psycopg и\или mysql-python
Если вы, как и я, скачали виндовые установщики (.exe) mod_python и библиотек БД, то наверняка столкнетесь с тем, что эти самые установщики ругнутся на отсутствие данных об установленном python 2.5 в реестре windows.
Решаем эту проблему, внося данные вручную:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.5]
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.5\InstallPath]
@="z:\\usr\\local\\python"
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.5\InstallPath\InstallGroup]
@="Python 2.5"
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.5\Modules]
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.5\PythonPath]
@="z:\\usr\\local\\python\\Lib;z:\\usr\\local\\python\\DLLs;z:\\usr\\local\\python\\Lib\\lib-tk"
После этого установка происходит без проблем. Можно упомянуть только о том, что в процессе установки mod_python необходимо будет указать папку, где установлен Apache — C:\WebServers\usr\local\apache\.
Установка Django
Возможно, данная часть даже не заслуживает заголовка, но, тем не менее, для тех, кто
Распаковываем архив, запускаем командную строку и заходим в директорию, в которую распаковали django. Выполняем:
python setup.py install
все.
Настройка mod_python для работы на определенном виртуальном хосте denwer-а
Предположим, что свой проект мы хотим разместить на одном из виртуальных хостов, а на других в этот момент могут продолжать вертеться другие проекты на php или на чем то другом.
Для нашего виртуального хоста потребуется индивидуальная настройка, а денвер создает блоки виртуальных хостов автоматически и по шаблону. Виртуальными хостами он делает все, что лежит в папке home.
Чтобы для одного из этих хостов определить свои специфические параметры, это необходимо сделать в httpd.conf. Впрочем, этот момент достаточно подробно описан в самом файле httpd.conf.
Предположим, что нам хотелось бы иметь проект на django по адресу dproject.dev. Я сделал следующее: создал директорию
C:\WebServers\home\dproject.dev\www
,Затем перешел в данную директорию в командной строке и создал там проект
cd C:\WebServers\home\dproject.dev\www\
python C:\WebServers\usr\local\python\Scripts\django-admin.py startproject dproject
,в итоге должна появиться директория
C:\WebServers\home\dproject.dev\www\dproject
с файлами проекта. Ну и наконец блок виртуального хоста, который добавил в httpd.conf:
<VirtualHost 127.0.0.1:80>
DocumentRoot "Z:/home/dproject.dev/www/dproject"
ServerName "dproject.dev"
ServerAlias "dproject.dev" "www.dproject.dev"
ScriptAlias /cgi/ "/home/dproject/cgi/"
ScriptAlias /cgi-bin/ "/home/dproject/cgi-bin/
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE dproject.settings
PythonDebug On
PythonPath ['Z:/home/dproject.dev/www'] + sys.path
</Location>
Alias "/admin_media/" "Z:/usr/local/python/Lib/site-packages/django/contrib/admin/media/"
<Location "/admin_media/">
SetHandler None
</Location>
</VirtualHost>
Практически все, что тут написано, объясняется в документации, я лишь объясню что алиас /admin_media/ и соответствующий блок Location нужны для статики админки django (img, css, etc). Чтобы админка django использовала данный адрес, необходимо поправить settings.py созданного проекта:
ADMIN_MEDIA_PREFIX = '/admin_media/'
На этом все. Если у вас что-то не получилось, постараюсь помочь в комментах.
Заключение
Я буду благодарен всем за дельные советы.
А еще можно было бы дописать в эту статью инструкции для подключения wsgi_module для этого же проекта.
А т.к. я не очень то силен в настройках windows, я не смог сделать так, чтобы не приходилось каждый раз набирать python для выполнения пайтоновской программы… Было бы куда лучше
.\manage.py startapp
нежили python \.manage.py startapp