Установка Django на Denwer

29
507
  1. Устанавливаем Denwer. Обратите внимание, в настоящей инструкции все пути даны с учетом того, что Denwer был установлен с параметрами “по умолчанию”, то есть в качестве буквы виртуального диска использована z.
  2. Устанавливаем модуль ActivePython 2.5.
  3. Устанавливаем модуль ActivePerl 5.8.
  4. Файл python25.dll копируем в папку z:usrlocalpythonpython25.dll.
  5. Создаем файл python25.reg с вот таким содержимым:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.5]
    [HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.5InstallPath]
    @="z:usrlocalpython"
    [HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.5InstallPathInstallGroup]
    @="Python 2.5"
    [HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.5Modules]
    [HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.5PythonPath]
    @="z:usrlocalpythonLib;z:usrlocalpythonDLLs;z:usrlocalpythonLiblib-tk"

    Обратите внимание на расширение файла .reg. Файлы с таким расширением содержат данные реестра, а могут содержать и целиком весь реестр или только отдельную ветку. Такие файлы иногда называют “заплатками реестра”. Убедитесь что расширение является именно расширением, а не просто частью имени файла. К примеру, файл python25.reg.txt – обычный текстовый файл, который просто откроется в Вашем текстовом редакторе, не внеся при этом никаких изменений в реестр.

  6. Двойным кликом запускаем созданный файл на выполнение. В появившемся окошке нажимаем “Да” чтобы подтвердить необходимость внесения данных в реестр.
  7. Устанавливаем модуль mysql-python
  8. Скачиваем django 1.1
  9. Создаем в денвере виртуальный хост django. Для этого нам достаточно создать локальную папку z:homedjangowww и перезапустить денвер.
  10. Разархивируем только что скачанный дистрибутив django в папку z:homedjangowww. Убедитесь, что файлы архива попали непосредственно в z:homedjangowww, а не вложены в еще несколько папок.
  11. Идем Пуск > Выполнить, в поле “Выполнить” набираем cmd и жмем Enter. 
    В открывшемся черном окошке вводим
    cd C:WebServershomedjangowww
    и жмем Enter.
    Там же вводим
    C:WebServersusrlocalpythonpython.exe setup.py install
    и жмем Enter.
    Вводим
    cd C:WebServershomedjangowwwbuildlibdjangobin
    и жмем Enter. Вводим
    C:WebServersusrlocalpythonpython.exe django-admin.py startproject my_djangosite
    и жмем Enter.
    Вводим
    cd C:WebServershomedjangowwwbuildlibdjangobinmy_djangosite
    и жмем Enter.
    Вводим
    C:WebServersusrlocalpythonpython.exe manage.py startapp news
    и жмем Enter.
    Эта команда создаст каталог C:WebServershomedjangowwwbuildlibdjangobinmy_djangositenews
  12. Создаем локальную базу MySQL для тестирования нашего django-сайта. Для этого запустим денвер и откроем phpMyadmin. Если Вы установили денвер с параметрами по умолчанию, то phpMyadmin должен быть доступен по ссылке http://localhost/Tools/phpMyAdmin/. В поле “Создать новую БД” пишем имя нашей тестовой базы. Например, django и жмем кнопку “Создать”.
  13. Открываем в текстовом редакторе Notepad++ файл C:WebServershomedjangowwwbuildlibdjangoconfglobal_settings.py
    и приводим раздел “Database connection info” вот к такому виду:


    # Database connection info.
    DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    DATABASE_NAME = 'django' # Or path to database file if using sqlite3.
    DATABASE_USER = 'root' # Not used with sqlite3.
    DATABASE_PASSWORD = '' # Not used with sqlite3.
    DATABASE_HOST = 'localhost' # Set to empty string for localhost. Not used with sqlite3.
    DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
    DATABASE_OPTIONS = {} # Set to empty dictionary for default.

    Значения DATABASE_USER и DATABASE_PASSWORD приведены здесь по умолчанию такими как после установки денвера. Если Вы их меняли, то укажите соответствующие значения.

  14. Точно так же правим и файл
    C:WebServershomedjangowwwbuildlibdjangobinmy_djangositenewssettings.py
  15. Возвращаемся к нашему черному окошку. Вводим
    cd C:WebServershomedjangowwwbuildlibdjangobinmy_djangositenews
    и жмем Enter.
  16. Вводим
    C:WebServersusrlocalpythonpython.exe manage.py syncdb
    и жмем Enter.
  17. Вводим
    C:WebServersusrlocalpythonpython.exe manage.py runserver
    и жмем Enter. Откройте в браузере ссылку http://127.0.0.1:8000/. Если Вы все сделали правильно, то увидите такую картинку:

    Django успешно установлена.

На этом всё. Мы создали проект my_djangosite с приложением news и подключили его к базе MySQL. Далее планирую написать инструкцию по установке CMS на базе django – “Django Page CMS 1.0.7”.
Следите за обновлениями!

29 КОММЕНТАРИИ

  1. Выполнил все до создания БД, а на localhost зайти не смог – не пашет. Перезагрузился – тоже самое 🙁
    Vista, Денвер на флешке – z и c:webservers менял на f… все шло нормально, разве что модуль mysql-python выдал пару ошибок. И вот такая фигня – Denwer сломался.

    • Во-первых, скопируйте всю папку C:Webserver чтобы не потерять Ваши файлы в папку C:Dnwr_backup. Затем попробуйте переустановить Denwer, ставьте новый прямо поверх старого. Если не проканает – удаляйте всю C:Webserver и ставьте Denwer заново. Ошибки при установке mysql-python могли возникнуть если вы проигнорировали/пропустили 4-й пункт этой инструкции. Словом, сначала надо оживить Denwer, а потом уже двигаться дальше. Посмотрите, может денвер упал из-за конфликта со Skype. У меня на компе они никак не хотят уживаться. Только если запускаю вначале Denwer, а потом Skype, то все ок. У меня Windows7.

  2. Спасибо за ответ – Skype скорее всего. Попробую.
    Кстати, начинающим (мне) было бы интересно почитать обзор какого-нибудь бесплатного (англоязычного) Python-хостинга с пошаговой инструкцией. У меня с первой попытки не получилось разобраться с http://x10hosting.com/ – аккаунт зарегал, а скрипты на Питоне не исполняются.

  3. Удалил свой Денвер с флешки, поставил на C: “стандартно”. Ошибок еще больше стало.

    1. При выполнении 4го пункта – копировать с затиранием? Я предыдущий dll переименовал, а новый сохранил как указано.
    2. Модуль mysql-python выдавал ошибки “не могу создать ключ”, “не могу установить значение ключа”. Запустил эту программу под правами администратора – ОС закрыла ее с ошибкой.
    3. В cmd почему-то при копировании из буфера строки сразу исполняются и сразу выдалась ошибка, что этот файл dll из 4го пункта не предназначен тра-ля-ля… Заменил его предыдущим “оригинальным”- установка пошла.
    4. Дошел до C:WebServersusrlocalpythonpython.exe django-admin.py startapp news my_djangosite – появилась ошибка “нет такого файла или директории”

    В общем, как-то не того че-то. Буду пробовать под XP…

    • Спасибо за замечание! Ошибка вкралась в процессе копи-пащенья. Перечитал еще раз джанговый мануал и выяснил что команда startapp должна передаваться файлу manage.py. То есть целиком выглядит вот так: C:WebServersusrlocalpythonpython.exe manage.py startapp news. В инструкции подправил. По 4-му пункту инструкции: конечно не следует затирать оригинальный python25.dll, тем более если с ним все работает. На самом деле я точно такой же начинающий. Если будут замечания/предложения – пишите!

  4. 🙂 получилось!
    только settings.py в папке news не было – был уровнем выше. А еще в последних шагах выдавался алерт:
    “Приложению не удалось запуститься, поскольку pywintypes25.dll не был найден.”

    Но получилось! Спасибо за статью. Рекомендую Вам самому на другом компе все по ней сделать и еще попробовать установку джанго, когда денвер на флешке.

    • О, у меня точно те же самые проблемы! Путь немного не тот, и ошибка при запуске сервера: “Приложению не удалось запустить, поскольку pywintypes25.dll не был найден. Повторная установка приложения может исправить эту проблему.” Но вроде, работает. Спасибо за подробную инструкцию! 🙂

  5. @alexeizuzin
    Отлично!
    Все верно, ведь settings.py содержит настройки для всего проекта, а в папке news находятся только файлы, относящиеся непосредственно к приложению news.
    Я теперь хочу описать установку Django на Linux-платформе (kUbuntu). А следующий шаг – создание полноценного веб-ресурса под управлением Django. Жаль только времени очень мало. С работы прихожу просто выжатый…

  6. Здравствуйте admin. Хочется полноценного веб-ресурса под управлением Django!!!
    jknnalibaba без разбойников.

  7. @jknn
    Пишу медленно, потому что очень стараюсь. Главное – качество )

  8. Команда “python.exe manage.py runserver”, насколько мне известно, запускает django вне зависимости от денвера и апача… а должно работать без неё, если набрать http://localhost/{denwer_www_path}/{project_dir} – будет?

    • Не будет. Но тем не менее, Вы абсолютно правы, так как команда «python.exe manage.py runserver» запускает джангу на 8000-м порту, а денверовский апач слушает обычно 80-й порт (по дефолту). По этому джанга запустится на встроенном light httpd сервере, а не на денверовском апаче. Чтобы пустить ее на денвере надо давать «python.exe manage.py runserver :80» и потом уже тыкать в бровзере localhost. А совсем без runserver, насколько мне известно, запустить джангу нельзя, так как эта команда инициализирует питонячий процесс, который будет обрабатывать получаемые запросы и отдавать результат серверу (апачу или нгинксу или еще какому).

      Правда, не могу пока попробовать сделать то что сам насоветовал, т.к. по производственной необходимости сижу в убунте. Попробуйте и напишите. Если получится — то поправим это инструкцио.
      Нет, все-таки можно без runserver запустить. Для этого к апачу и прикручивается mod_python. Вот что пишут об этом в официальных доках:
      mod_python is an Apache plug-in that embeds Python within Apache and loads Python code into memory when the server starts. Code stays in memory throughout the life of an Apache process, which leads to significant performance gains over other server arrangements.
      То бишь питонячьи скрипты будут загружаться в память вместе с запуском сервера и крутиться там все время пока работает апач (сру зэ лайф оф эн апач процесс =) ), что якобы должно хорошо сказаться на перформансе сервера.

  9. Да, пробывал по mod_python, только на Windows Server 2008 – геморр и врядли это вообще возможно, по крайней мере для меня. Сейчас думаю на убунте, аналогично, в связи с производственной необходимостью поставить сервер. Нужно быстрее сайт рабочий и на убунте вроде как проще это все делается.. Вы уже пробывали прикрутить mod_python? Любопытно было бы увидеть об этом в следующей статье 😉 Внутренний интерпретатор runserver рекоммендуют использовать только для тестов – на рабочий проект предполагается ставить именно mod_python, WSGI, FastCGI и пр.

    • У нас на работе используется связка nginx + flup + django . Я сам не настраивал боевой сервер, знаниев пока не хватает, есть только общее представление о том как оно работает. Буквально вчера купил себе хостинг под django, буду разбираться. Там, правда апач а не нгинкс и WSGI вместо mod_python. Хостер тоже не рекомендует использовать mod_python, хотя и не запрещает. Так что про мод-питон точно писать не буду. Лучше напишу как настроить apache + django + wsgi. Тока дайте время разобраться “чокаво” )

  10. zdraste mr. admin
    у меня чо-то не получается c 14.Точно так же правим и файл
    C:WebServershomedjangowwwbuildlibdjangobinmy_djangositenewssettings.py
    нету там settings.py но до этого все пректасно. и я newbie proger вообще а ест ли у вас ebooks про django с denwerом пожалуйсте pls help

    • settings.py должен быть обязательно. Он создаётся командой “C:WebServersusrlocalpythonpython.exe django-admin.py startproject my_djangosite” если она нормально отработала, то он у вас есть точно, запустите его в поиск. К сожалению основная литература по джанго – только на английском языке. На официальном сайте есть подробная документация с мануалами, где прямо пошагово разбирается создание и настройка веб-приложения на примере системы голосования, там всё довольно очевидно даже без глубоких познаниев в инглише. Есть и попытки перевода официальных доков. Я не пользовался, но вроде сайт приличный. На торрентс.ру есть много книжек по джанго в .pdf формате (в основном на англ.). Лично я предпочел купить бумажную книжку. Чего и вам советую.

  11. При выполнении 16-го шага Вводим
    C:WebServersusrlocalpythonpython.exe manage.py syncdb
    и жмем Enter.
    выдаёт ошибку
    и прочее в том же духе…где взять этот модуль и куда его установить?

    • Это означает что питон не может связаться с MySQL. За их связь отвечает модуль mysql-python. Увас не было ошибок на седьмом пункте? Попробуйте переустановить mysql-python

  12. Дело в том что он не устанавливается…Он находит папку питона…я нажимаю далее…и через пол секунды окно пропадает, даже не начав процесс установки…(

  13. Добрый день
    ….не совсем понятен момент с установкой денвера вообще в этой ситуации….зачем он, если вы запускаете django на встроенном в него сервере (команда manage.py runserver) и потом смотрите на него в браузере по адресу localhost:8000 ….. так можно просто поставить дистрибутив питона и django и не морочить себе голову вообще…я не специалист и мне просто интересно узнать почему именно так и зачем он denver вообще здесь…..и не проще ли прописать path что бы не вводить столь длинных строк или просто скопировать django-admin.py в папку проекта к примеру….

  14. простите за мультипостинг, но еще один очень волнующий меня вопрос – а ActivPerl то тут зачем вообще???

    • Согласен и с тем, и с другим замечанием. Эта статья была скопипащена мной с одного их денверовских форумов. Я всё перепроверил на своем опыте и опубликовал здесь с небольшой правкой, не вдаваясь во все тонкости процесса. Для меня было достаточно что “если сделать так – то работает” )) Сейчас я в курсе что в джанге есть встроенный light httpd сервер, которого вполне хватает для целей разработки. Но в сентябре прошлого года я только начинал знакомиться со всеми этими делами. Сейчас достаточно продвинулся в джанге. Купил недорогой VDS-хостинг с gentoo, развернул там джангу+апач+mod_wsgi, поднял там svn-сервер. Теперь вот экспериментирую, хочу сделать приложение – электронный магазин. Продвигается, правда медленно. Вот здесь можно посмотреть на какой стадии находятся мои труды – http://wmast.ru/. Если есть интерес – присоединяйтесь к разработке, буду рад любой помощи, в том числе и на коммерческой основе.
      Кстати, спасибо что поправили!

  15. Если дадите координаты какие-то, то можем обсудить или стучите 595652837

  16. Здравствуйте, у меня проблемы на 7ом пункте. mysql-python ставится не корректно.
    файлы коппирует, однако при установке пишет что не может добавить ключи.
    если запускать установку от имени админа. то установка вобще повисает и вылетает.
    система Windows7
    Подскажите пожалуйста, как быть?

  17. @Highlander
    Здравствуйте!
    Простите за “оперативность” )) Если решили проблему, напишите в двух словах как именно. Возможно, кому-то пригодится…

  18. Доброго времени суток.
    На 16-м пункте возникает проблема: c:webserversusrlocalpythonpython.exe: can’t open file ‘manage.py’: [Errno 2] No such file or directory.
    mysql-python установился корректно (все пути при инсталяции взяты по умолчанию)
    Прошу помощи в решении моей проблемы. Спасибо за потраченное время.

Comments are closed.