Django – среда обитания. Часть 3 – Установка Django
В этой части я постараюсь подробно рассказать об установке самой Django, Т.к. статья адресована, в основном, для человека, не знакомого с Linux системами, я буду подробно описывать каждый свой шаг (см. часть 1). Так же для продолжения, я буду исходить из того, что у вас уже есть web-сервер на Ubuntu, и он настроен так, как описано в части 2.
Чтобы работать дальше я скачал программу терминального доступа по SSH соединению – «putty.exe» вот отсюда
http://putty.org.ru/download.html
Она позволяет соединяться с сервером по защищенному соединению, но мне главное, что она позволяет делать копи/паст («Ctrl+ins»/«Shift+ins») и изменять размеры/цвет шрифта в терминальном окне. Так же она не «захватывает» мышку.
PuTTY без установки запускается из того места, куда скачаете.
Кстати, вы сейчас спокойно можете закрыть окно терминала ВК программы VMWare, наш ВК при этом будет продолжать работать.
Запускаем putty.exe, в поле «Host Name» вводим 10.10.10.42 (вы – свой)
В секции «Session logging» ставлю переключатель на «SSH packet and raw data»
В секции «Windows Translation», в выпадающем списке «Received data … set» ставим «UTF-8», иначе вместо русских букв будут разные интересные символы.
Жмем кнопку «Open», на вопрос отвечаем «да», вводим логин, пароль на ВК.
Получаем – терминал на ВК.
Если щелкнуть правой кнопкой мышки на заголовке окна putty – вы окажетесь в контекстном меню, где выбрав пункт «Change Settings…» откроете окно установкок программы. В нем вы сможете изменить шрифт, а так же для того, чтобы не вводить каждый раз адрес и другие настройки, можно сохранить параметры:
Еще пару слов о VMWare. Эта программа позволяет делать «снимки» своих ВК. Только один момент – хранится самый последний «снимок» (может я просто не нашел, где можно добраться до списка «контрольных точек» :) )
Итак, выбрав в списке слева, интересующий нас ВК, в правой панели «Commands» щелкаем на пункте «Snapshot», откроется выпадающий список. Для создания «снимка» выбираем «Take Snapshot», если у вас уже были «снимки» этой ВК, то программа предупредит вас о том, что перепишет последний «снимок». Идентификация их происходит по дате и времени.
Для восстановления состояния ВК, на момент последнего «снимка», нужно выбрать «Revert to Snapshot».
Надо ли выключать ВК при этих операциях? Если про восстановление все понятно, то сохранение я также делаю при выключенном ВК.
Для выключения ВК нажмите кнопку с красным квадратиком в верхней части окна программы VMWare. Я не знаю, корректно ли выключает ВК сама программа VMWare, т.е. без команды «shutdown» в терминале. Скорее всего – да, по крайней мере, я делаю так.
Теперь, если хотите, сохраните состояние вашего ВК.
Вновь запустим ВК, нажав кнопку с зеленым значком «>».
Запустим PuTTY. Если вы сохраняли сессию, то просто выберите ее. Если нет, то заново введите IP ВК, и все остальные настройки. После этого, возможно, придется немного подождать – ВК грузится. Потом введите логин и пароль.
Далее мы будем вводить различные команды в системе, так вот – регистр букв – всегда ИмЕеТ значение! Пользователи Windows – внимательнее.
Для безопасности в Ubuntu изначально недоступен главный пользователь root. Именно от его имени будет происходить большая часть дальнейшей настройки. Попробуем переключиться на этого пользователя:
$ sudo su
(знак «$» – вводить не надо, так я буду обозначать приглашение системы на ввод команды от пользователя «evg»)
Система попросит ввести ваш пароль, и затем переключит на пользователя root. Строка приглашения ввода изменится с «evg@ubuntu:~$» на «root@ubuntu:/home/evg#». Теперь вы можете творить с системой что хотите. Но мы не будем этого делать, и просто вернемся к пользователю «evg» набрав в строке приглашения «exit». А если нам понадобится права пользователя «root», будем в начале команды писать «sudo». Этим мы сообщим системе, что следующую команду надо выполнят от имени пользователя «root».
Теперь сделаем нашу работу в терминале Ubuntu немного приятнее, установим файловый менеджер «Midnight Commander». Почитать о нем можно, например, здесь – «http://www.ixbt.com/soft/filemanagers-linux.shtml#7».
Выполним следующую команду:
$ sudo apt-get install mc
Для переключения в права root система может попросить ввести вас пароль, затем начнется установка программы (это может случаться и далее, это нормально, просто вводите пароль когда требуется).
Внимательный человек заметит, что приглашение в моей системе сменилось с «evg@ubuntu~$» на «evg@ub43~$», это из-за того, что я сейчас в другом ВК нежели в начале статьи (и IP стал 10.10.10.43). При первом «прогоне» я не сделал некоторые иллюстрации. Чтобы восполнить данный пробел, а так же для проверки всего, я проделал установку еще раз.
Теперь введем
$ mc
Запустится файловый менеджер от имени пользователя evg.
Сейчас мы находимся в домашнем каталоге пользователя «evg», как видно – он пуст (несмотря на имеющиеся записи, это системные штучки, нам они не интересны).
В дальнейшем я буду продолжать установку без файлового менеджера. Вы можете его использовать, если запутаетесь/потеряетесь в лабиринтах файлов/папок/ссылок/устройств Linux. Запустив «mc» вы сможете быстро вернуть ориентацию :). Его можно запустить и под правами пользователя «root», предварительно переключившись на него, как описано ранее. Только будьте при этом осторожны, с этими правами можно сделать много нехорошего :).
Если оболочка не нужна на экране, нажмите F10 для выхода, либо «Ctrl+O» для того, чтобы временно убрать «mc» с экрана, возврат опять по «Ctrl+O» (привет NC и VC из 90-х…).
Я же пока вышел из программы «mc».
Для информации… Консоль хранит список набранных вами команд. Клавишами «вверх» и «вниз» можно, находясь в строке приглашения для ввода, выбрать нужную из истории команду.
Итак, займемся именно тем, для чего мы все это затеяли – установкой Django.
Будем брать самую «свежую» версию.
Для этого установим программу «subversion»
$ sudo apt-get install subversion
Для установки система «докачает» необходимые пакеты. Придется один раз ответить «д»а. По окончании этого процесса на экране будет примерно следующее:
ставим Django из последней сборки
$ svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
(если у вас не получится установить mc или subversion на этом этапе – прочитайте следующую статью, а затем вновь вернитесь к этому месту установки)
Обратите внимание на пробел в команде перед словом «django-trunk».
Этой командой мы скачали последнюю версию Django в каталог «django-trunk», который создался в нашей домашней папке. Чтобы увидеть это, запустите «mc», либо просто дайте команду
$ ls
она покажет все объекты в текущей папке.
Теперь, нам надо узнать, где Python хранит свои библиотеки.
$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
Эта команда вывела – «/usr/lib/python2.6/dist-packages»
Теперь свяжем папку библиотек Python с папкой Django, которую вы скачали, командой «$sudo ln -s /home/_USER_/django-trunk/django _PACKAGES-DIR_ /django», где _USER_ – имя вашего пользователя, а _PACKAGES-DIR_ – папка библиотек Python.
У меня получилось следующее:
$ sudo ln -s /home/evg/django-trunk/django /usr/lib/python2.6/dist-packages/django
(стоит пробел между «/home/evg/django-trunk/django» и «/usr/lib/python2.6/dist-packages /django»)
Проверим установку.
Запустите интерпретатор Python
$ python
Строка приглашения изменится на «>>>».
Введите строку:
>>>import django
Если ничего не произошло – Django установлена.
Узнаем текущую версию:
>>>django.VERSION
У меня получилось – «1, 2, 0, ’alpha’,0»
Выйдем из интерпретатора Python – нажмите «Ctrl+D»
Если на предыдущем этапе после команды «>>>import django» вместо просто «>>>» интерпретатор еще и «поругался», то это значит, что вы допустили ошибку при создании символической ссылки. Выполните последовательно следующие команды:
$ cd /usr/lib/python2.6/dist-packages
$ sudo rm django
$ cd ~
Теперь вернитесь к рисунку 9. И проделайте все действия по установке еще раз.
Для иллюстрации процесс исправления символической ссылки я тоже проделал:
Теперь проверим работоспособность Django на сервере Apache.
Для этого нам необходимо поставить модуль «mod-wsgi», заодно обновим Apache.
$ sudo aptitude install apache2 libapache2-mod-wsgi
Вовремя установки, на вопросы, всегда отвечайте «Д»а или «Y»
За создание проектов в Django отвечает файл «django-admin.py», для того, чтобы не копировать его в папку каждого проекта, сделаем его доступным из любого места в системе:
$ sudo ln -s /home/evg/django-trunk/django/bin/django-admin.py /usr/local/bin
(есть пробел между «/home/evg/django-trunk/django/bin/django-admin.py» и «/usr/local/bin»)
Теперь создадим папку для проектов «django-projects» и папку нашего первого проекта «mysite_ss»
$ sudo mkdir -p /home/evg/django-projects/mysite_ss
Перейдем в каталог «mysite_ss» (если вы «потерялись» то команда «cd[ПРОБЕЛ]~» всегда вернет вас в домашний каталог)
$ cd ~
$ ls
$ cd django-projects/
$ ls
$ cd mysite_ss/
$ ls
На рисунке – команды и ответ системы после этого процесса
Напомню, что команда «ls» – выводит содержимое текущей папки, а команда «cd» – осуществляет переход в указанную папку. Если при наборе «пути» нажать «Тab», то система сделает авто дополнение имени папки/файла при однозначном его определении (т.е. если в папке есть «projects» и «programms», то для авто дополнения до «programms» нужно набрать хотя – бы «cd prog» и нажать клавишу «Tab»).
Итак, находясь в папке проекта, создадим его (назовем «mysite»):
$ sudo django-admin.py startproject mysite
$ ls
Скорректируем названия модуля для импорта
$ sudo perl -pi -e 's/mysite.urls/urls/g' mysite/settings.py
Добавим группу «evg»
$ sudo addgroup --quiet --system evg
Создадим директории:
Для настроек wsgi
$ sudo mkdir deploy
Для статики
$ sudo mkdir media
Для логов
$ sudo mkdir logs
$ ls
Ну и как вам Linux – весело, правда :)
Настал момент создания/редактирования файлов проекта. Конечно можно это делать и в терминале, с помощью редактора «vim» или «nano», но мне как-то по больше душе родные windows-программы. Поэтому следующим шагом я «расшарю» папку «django-projects» в локальную сеть.
$ sudo nano /etc/samba/smb.conf
Двигаем курсор вниз, до секции [global]
И изменяем строчки
workgroup = INTERWOOD #(вы ставьте свою группу в локальной сети)
server string = eeddiitt #(тут можно любую строку)
security = share #(по умолчанию она была ниже, закомментированной и равна "user")
Затем, в самый конец файла, добавляем:
[django-projects] #(под этим именем папка будет видна в сети)
path = /home/evg/django-projects
available = yes
browsable = yes
public = yes
writable = yes
guest ok = yes
guest only = yes
create mask = 0777
directory mask = 0777
Для сохранения надо нажать «Ctrl+O» и «Enter».
Для выхода – «Ctrl+X».
Перезапустим службу
$ sudo /etc/init.d/samba restart
Так как безопасность нам не нужна, то делаем следующее:
$ cd ~
$ sudo chmod 0777 django-projects/
на экране сейчас следующее:
на компьютере под Windows открываем сеть, находим наш ВК, открываем его, видим
заходим
и дальше
радуемся :)
Для проверки я попробовал создать папку, а затем в Ubuntu удалил ее, т.е. все работает!
Да, я забыл дать права 0777 на подпапки для «django-projects».
Ничего страшного, выполним команду еще раз, но с параметром «-R»
$ sudo chmod 0777 -R django-projects/
Теперь все нормально. С файлами проекта можно работать из-под Windows, по сети. Но пока не закрывайте PuTTY-терминал, он еще пригодится.
Хотя мы и может создавать/редактировать файлы из-под Windows, все же первые 2-а файла мы создадим в Ubuntu, с помощью редактора nano. Ответ на вопрос: «Зачем нам это надо?» прост – Кодировки!
Да-да, именно разная кодировка символов в Ubuntu и Windows заставляет меня так сделать. Затем, когда мы уже запустим первый Django-проект, будем подбирать редактор, способный ничего не испортить с кодировками.
Итак, создадим файл mysite.ss в папке deploy
$ cd ~
$ sudo nano /home/evg/django-projects/mysite_ss/deploy/mysite.ss
Он должен быть таким:
Для того, чтобы вам все не набирать, его можно взять здесь. Напомню, что можно спокойно копировать/вставлять по «Ctrl+Ins»/«Shift+Ins»
Символ «\», в конце строки «WSGIDaemonProcess evg-site user=evg group=evg home=/home/evg/django-projects/mysite_ss/media/ \», экранирует перевод строки («Enter») т.к. вся строка не умещалась на экране для показа. Кстати, перед символом «\» – стоит «пробел». Если вы копируете, то советую вам, сначала скопировать первую часть строки, после » \» нажать «Enter», а затем только скопировать вторую часть строки. Можно так делать и далее по тексту, где встретиться экранирование символом «\».
По окончании ввода, нажмите «Ctrl+O», затем «Enter», затем «Ctrl+X»
Теперь создадим файл django.wsgi (лежит здесь)
$ sudo nano /home/evg/django-projects/mysite_ss/deploy/django.wsgi
Примечание:
Основу для этих файлов я взял с сайта
Я нашел еще 2 места в сети, где была вышеуказанная статья. Но, думаю, это ссылка именно на «оригинал». Сужу по имени пользователя и группы, которые там используются (dw – похоже означает – debianworld). Кстати, если вы используете свои имена пользователя и группы, а так-же отличные от моих путь к проекту и версию Python’а, то сравнив файлы, легко сможете выяснить места в них, подлежащих исправлению согласно вашим настройкам :)
Добавим ссылку на виртуальный хост
$ sudo ln -s /home/evg/django-projects/mysite_ss/deploy/mysite.ss \
/etc/apache2/sites-available/mysite.ss
Обратите внимание – символ «\» экранирует перевод строки (Enter)
Затем создадим файл (его у меня не было, у вас, наверное тоже) «/etc/apache2/conf.d/vhosts.conf»:
$ sudo nano /etc/apache2/conf.d/vhosts.conf
Добавим в него строку, следующего содержания:
ServerName ub43
где, «ub43″ – имя моего ВК.
Сохраним его, выйдем из него.
Включим наш виртуальный хост
$ sudo a2ensite mysite.ss
Перегрузим apache
$ sudo /etc/init.d/apache2 reload $ sudo /etc/init.d/apache2 restart
Перейдем в Windows и добавим в файл «C:\Windows\System32\drivers\etc\hosts» строку:
10.10.10.43 wsgi.mysite.ss
Сохраним его и запустим Firefox.
В адресной строке надо написать wsgi.mysite.ss
Ура – Все работает!
Для продолжения читайте

























Интересно было почитать. Сам тоже недавно начал изучать Django. Советую обратить внимание на пакет virtualenv для настройки рабочего окружения django проекта. В общем подписался на rss.
Спасибо за совет. Как сам разберусь – обязательно выложу здесь. Но это будет еще не скоро :).
Рад, если помог в чем-то!
И вдвойне рад первому отзыву на блоге:)))
Статья была исправлена, сейчас к сайту можно обращаться только по имени.
Запрос по IP, т.е. если набрать в броузере 10.10.10.43 – откроет стандартное приветствие сервера Apache.
Сейчас можно иметь сколько хочешь «Виртуальных Хостов», т.е. работать с несколькими сайтами. Необходимо только правильно настраивать для каждого файл виртуального хоста (в этой статье это mysite.ss)
Если вы читали статью до времени выхода этого комментария, обновите страницу, нажав ‘Ctrl+F5′. (у меня в WordPress’e стоит кэш-плагин)
для чего это нужно?
Скажу честно, если со всем остальным более-менее разобрался, то это для меня тоже загадка. Точнее, незачем было с этим разбираться. Сделал это согласно статье на ДебианМире :). Т.к. сейчас сервер работает так, как мне надо, то и разбираться не хочу :)
Сейчас у меня на серваке 2 сайта «вертятся». Завтра буду 3-й добавлять, попробую сделать это без данной операции :)
Я вот тут для разработки решил тоже прикрутить проект к apache, токо вот у меня проект в виртуальном окружение (virtualenv) вроде апач запустил только как то странно и не понятно все работает, он уменя по httр://127.0.0.1/ выводит приветствие но я сменил этот ip на другой а он все продолжает выводить приветствие по httр://127.0.0.1/ (это что его дефолтный ip и я что то не правильно делаю ) какой я должен прописать ip в тоже не понятно?
Адрес 127.0.0.1 – это т.н. «заглушка», ссылка компьютера на самого себя в адресном пространстве, синоним его – «localhost». Он, действительно, по умолчанию открывает «приветствие» Apache.
Я так понял, что вы хотите добавить на сервер ВиртуальныйХост. Имя для своего, разрабатываемого сайта.
И делаете вы это, скорее всего в Windows :) Если я прав, то попробуйте поискать в гугле по фразе «настройка виртуальных хостов в Apache». Сегодня утром я находил очень много инфы на эту тему.
Если же я не прав, и вы работаете в Ubuntu, то ответы в статье.
Нет делаю я на debian! скажите я так понял что мой внутрений ip 192.168.1.33 я могу на него или на 127.0.0.1 повесить проект для разработки? в /etc/hosts сделал вот так
127.0.0.1 localhost
127.0.1.1 debian
192.168.1.33 wsgi.mysite.ru
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
когда захожу на 192.168.1.33 или wsgi.mysite.ru получаю ошибку
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@wsgi.mysite.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at wsgi.mysite.ru Port 80!
Понятно :)
Точно не знаю, но я бы сделал так…
В файл hosts
127.0.0.1 localhost192.168.1.33 debian
192.168.1.33 wsgi.mysite.ru
где «debian» – имя вашего компьютера
В файл /etc/apache2/conf.d/vhosts.conf
ServerName debianЗатем настроить VirtualHost, т.е. проделать все, что в этой части статьи, кроме настройки службы samba.
По идее – должно заработать.
Хочу добавить – эта статья, все ее 10 частей, я написал именно из-за того, чтобы вы не заморачивались с настройками (в том числе и с virtualenv). Прочитайте все, начиная с 1-й части. Если понравится – сделайте аналогично. Плюсы – налицо. Из минусов, один – синхронизация версий Python и Django на «сервере» и «рабочем клиенте», по моему, он легко решается.
Подумайте над целью изучения Django. В любом случае это – работающий сайт.
Т.е. все равно проект надо будет переносить на сервер.
У меня же сейчас – готовый работающий сервер. Если мне надо, сделаю несколько ВК, с разными ОС, Python, Django.
В том числе это возможно и если у вас 1 компьютер, и он под Debian. Есть множество программ ВиртуальныхМашин и под Linux. Все, что вам требуетя – это создать виртуальную локальную сеть со статичными адресами между основным компом и виртуальным сервером. А дальше – все настройки, начиная со второй части.
Подумайте. Я так сделал, и не пожалел, пока еще:)
Спасибо!
Т.е. помогло? (самому просто интересно :))
Или будете ВиртМашину ставить?
не помогло, буду пока это добивать, но потом попробую с вм!
Судя по ответу в ошибке – сайт у вас к Апачу «прицепился». Т.е. не верны настройки файла ВиртХоста. А по этому поводу сказать не могу ничего, т.к. там есть и настройки связанные с virtualenv (вы же должны как-то «подсовывать» этот «env» Апачу), а его (virtualenv) я не знаю. И не узнаю, т.к. ненадо :)
Удачи!
уточню… не «…не верны настройки файла ВиртХоста…», А – возможно не верны настройки файла ВиртХоста, или настройки связанные с этим файлом в virtualenv.
Все получилось настроил нечего сложного! Не подскажишь где посмотреть инфу команд апача и как сделать
несколько проектов а то ип всего один и постоянно менять настойки проекта как то не очень удобно, можно как нибудь айпи добавить?
Там особо ничего и не надо делать. Т.е. 1 – создаешь еще один файл виртхоста (как здесь),2 – ‘энаблируешь’ новый сайт, 3- добавляешь в файл hosts еще одну строку с тем же IP но с другим именем, 4- ‘рестартишь’ Апач… и все.
поправлюсь – создаешь, конечно же, 2 файла как здесь и как здесь. Т.е. все надо сделать как и для 1-го сайта. Только ставить везде пути и названия второго проекта\сайта
Нет так не получаеться вот мои фаилы настроек!
# Описание сервера
ServerAdmin admin@www.mysite.ru
ServerName
# Описание сервера
ServerAdmin admin@www.sparta-wrestling.ru
ServerName
/etc/hosts
127.0.0.1 localhost
192.168.1.33 debian
192.168.1.33
192.168.1.33
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
вот лог апача
debian:/home/user# sudo /etc/init.d/apache2 reload
Reloading web server config: apache2[Tue Dec 29 01:41:08 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive
.
debian:/home/user# sudo /etc/init.d/apache2 restart
Restarting web server: apache2[Tue Dec 29 01:41:17 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive
… waiting .[Tue Dec 29 01:41:19 2009] [warn] VirtualHost 192.168.1.33:0 overlaps with VirtualHost 192.168.1.33:0, the first has precedence, perhaps you need a NameVirtualHost directive
в 1 строке файла ВиртХоста что пишите? Должно быть как здесь, буква в букву.
Все время срабатывает !
после рестарта Апача ошибок быть не должно. см.рис.24 в этой части.
все получилось надо так *80 а не айпишник! спасибо! а чем команды отличаються
apache2 reload
apache2 restart?
по идее, в нашем случае, хватит любой из них и одной.
Написал 2-е, на всякий случай, чтоб наверняка. Чем конкретно отличаются – сказать трудно. Предположу: reload – перегружает список виртХостов, restart – полностью останавливает и запускает вновь сервер.
Я пытался вначале написать в ответе 1-ю строку из этого файла, но ВордПресс «не пускает» символы «больше\меньше», думает, что тег :) Вот я и написал «…буква в букву…» :)
Рад, что разобрались.
Т.е. virtualenv все же?
пока да, но я думаю что приду и к твоему способу тоже, просто пока рано еще! а можно как кто с моими граблями пробывать SSH так для общего развития, или обезательно нужен вирт комп?
PuTTY – Это просто терминал по защищенному протоколу. Я ей пользуюсь так как в ней можно делать копи\паст из основного компа, и шрифт настроить. Т.е. в твоем случае – проще просто в командной оболочке (или как там в дебиане это называется)
Спасибо за статью, очень полезна для меня оказалась.
Нашел очепятку в команде. У Вас написана:
$ sudo ln -s /home/evg/django-trunk/django /usr/lib/python2.6/dist-packages/django
а надо
$ sudo ln -s /home/evg/django-trunk/trunk/django /usr/lib/python2.6/dist-packages/django
иначе линк создается на не существующую папку.
Еще раз спасибо.
Спасибо за замечание. Но…
Я делал скрины всех команд, см. рис. 10. Т.е. у меня папки «…/django-trunk/trunk…» – нет :).
1)
$ sudo apt-get install mcсразуне заработал. перед этим надо было вызывать
$ sudo apt-get update2) при конфиге smb.conf забыл в пути ресурса имя пользователя на свое поменять и поэтому немного мучался. Вроде тут все.
1. да, это возможно. Я там ниже сделал примечание:
2. Если у Вас отличаются пути/имена папок/проектов и проч. (а это вполне естественно), внимательнее смотрите на скрины (для этого я их и делал так подробно :)).
КАКОЙ ЗАМЕЧАТЕЛЬНЫЙ ЦИКЛ!!!
Автору &mbash; глубокое мерси!
===========================
Только вот… Сделал всё в точности как было велено, но при попытке перейти по адресу , получил следующую \»красоту\»:
ImportError at /
No module named mysite.urls
Request Method: GET
Request URL:
Django Version: 1.3 SVN-15912
Exception Type: ImportError
Exception Value:
No module named mysite.urls
Exception Location: /usr/lib/python2.6/dist-packages/django/utils/importlib.py in import_module, line 35
Python Executable: /usr/bin/python
Python Version: 2.6.4
Python Path:
['/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old',
'/usr/lib/python2.6/lib-dynload',
'/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL',
'/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0',
'/usr/local/lib/python2.6/dist-packages',
'/home/evg/django-projects/mysite_ss/mysite']
Server time: Fri, 25 Mar 2011 05:47:42 -0500
……..
……..
Если угодно, могу продолжить.
VM: VirtualBox
HOST: Windows XP SP 3
GUEST: Ubuntu Server 9.10
Django ver.: 1, 3, 0, \’final\’
Заранее благодарен
Попробуйте проделать еще раз операции после 14 рисунка
Насколько я понимаю, ему нужен модуль mysite.urls
Что это, нововведение в свежей версии Django?
Тут уже спрашивали про этот файл в четвертом комменте.
Мой ответ не изменился – я не знаю :), но он (mysite.urls) нужен, иначе не работает.
Да-да, команду sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py я выполнял, но файла mysite.urls нигде не появилось.
В какой же папке он должен находиться? И что должен содержать?
Посмотрите откуда вы эту команду выполняли.
Делать ее надо из mysite_ss (в моем случае), чтобы нашелся путь «mysite/settings.py»
Возможно в этом причина.
Так точно-с!
Выполнял именно в этой папке. Результат – нулевой.
В Вашем случае, для проекта mysite, где же он всё-таки лежит и что содержит?
Pleeeeeeeease!..
К сожалению сейчас нет под рукой проекта с такими настройками (статье уже 1,5 года). Рад бы подсказать, но не могу :(
К тому же на django 1.3.0 я не проверял.
Посмотрите – у Вас сеть работает между основным и виртуальным компьютером?
Затем попробуйте не спеша еще раз все проделать, с самого начала (там делов на 40 мин).
Гость пингует хозяина. Хозяин пингует гостя.
Страница Apache «It works!» видна. Расшаренные папки тоже видны…
Эх, ладно… Пойдём по-новой.
Спасибо!
Замечательная статья! Автору огромное спасибо.
Но …(
При установке Ubuntu 10.10 в VirtulBox-е возникли, на данный момент, несколько вопросов:
(django.VERSION 1, 3, 0, ‘final’, 0)
1).
$ sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py
Print error: “Can’t open mysite/settings.py: Нет такого файла или каталога.”
!!! Не понятно: то работает, то нет!
2).
$ sudo /etc/init.d/samba restart
sudo: /etc/init.d/samba: command not found !!!!)
Просмотрев папку, действительно, samba нет
Для начала решил тупо набрать:
$ samba
Программа ’samba’ на данный момент не установлена. Вы можете установить её, выполнив:
sudo apt-get install samba4
В линуксе я профан, чем отличается samba от samba4 не знаю, потому для начала:
$ sudo apt-get install samba
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлена самая новая версия samba.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 143 пакетов
не обновлено.
Не понял! Что это значит! Если стоит «самая новая версия», то почему не работает?! Если ее
нет, почему не устанавливается?
2-й вопрос samba4. Установка прошла успешно – рестарт:
$ sudo samba4 restart
…
Unknown parameter encountered: «passwd program»
Ignoring unknown parameter «passwd program»
Unknown parameter encountered: «pam password change»
Ignoring unknown parameter «pam password change»
Unknown parameter encountered: «map to guest»
Ignoring unknown parameter «map to guest»
Unknown parameter encountered: «usershare allow guests»
Ignoring unknown parameter «usershare allow guests»
Unknown parameter encountered: «guest ok»
Ignoring unknown parameter «guest ok»
Unknown parameter encountered: «guest ok»
Ignoring unknown parameter «guest ok»
Unknown parameter encountered: «public»
Ignoring unknown parameter «public»
Unknown parameter encountered: «writable»
Ignoring unknown parameter «writable»
Unknown parameter encountered: «guest ok»
Ignoring unknown parameter «guest ok»
Unknown parameter encountered: «guest only»
Ignoring unknown parameter «guest only»
Следующие вопросы, возможно, возникли, как следствие, и потому пока придержу.
1. Обратите внимание из какого каталога выполняете данную команду (см. рис. 14, т.е. в этом каталоге должна быть папка ‘mysite’). Или пропишите полный путь к mysite/settings.py (у Вас не находит settings.py)
2. Установка самбы была во второй части, в статье ‘Django – среда обитания. Часть 2 – Установка VMWare и Ubuntu‘, см рис. 13
т.е. ставилась серверная Ubuntu, и соот-нно самба устанавливалась сразу при инсталляции ОС.
Гарантировать, что будет все работать с новыми версиями ОС и Django я не могу, ибо уже давно не делал такую настройку – пересел полностью на Ubuntu.
PS Обращайте внимание на скрины – из них можно понять в каком каталоге какую команду я делал
Спасибо за ответю В эти дни, из-за нехватки времени, мне не удалось подойти к своим проблемам вплотную. Решил переустановить все, а там посмотрим.
Ох, сколько промучился, но все таки сделал это)
It worked!Congratulations on your first Django-powered page.
А вся проблема была в том, что при создании проекта получилось не так как у вас, видимо с новыми настройками, что-то поменяли. Получилось что при создании проекта, вместо пути:
mysite_ss/mysite – и лежащими в этой папке конфигурационными файлами.
У меня получилось:
mysite_ss/mysite/mysite/__init__.py, __init__.pyc, settings.py, settings.pyc, urls.py, urls.pyc, wsgi.py
/manede.py
То есть, в папке mysite создалась еще папка mysite и уже в ней были конфигурационные фалы.
Соответственно, после всех операций и попытке перейти по урлу: wsgi.mysite.ss – я получил: Internal Server Error 500.
Пришлось подумать самому :) Заодно и в настройках получше разобрался.
И так, чтобы все работало, нужно в фале django.wsgi в строке:
# Установка файла настроекos.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
добавить к settings саму папку в которой лежит файл:
# Установка файла настроекos.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
После этого перезапуск апача и… снова ошибка, только уже все гораздо интереснее расписано :) Переписывать все не буду, суть в том, что теперь не находит файл ‘urls’ – который так же лежит в подпапке:
mysite/misite/urls.pyЧто же, раз теперь путь к файлу ‘mysite.settings’ правильный, и файл находится верно, но возникает дальнейшая ошибка, значит лезем в этот файл и смотрим там. Находим причину:
ROOT_URLCONF = 'urls'
А нужно сделать:
ROOT_URLCONF = 'mysite.urls'И снова перезапустить апач.
Все! Теперь нас приветствует страница, поздравляющая с успешным запуском первого проекта на Django :)
очень полезная серия статей, большое спасибо автору и его трудам!
но дабы не попасть в просак с новыми версиями джанго, поскольку мы устанавливали все из SVR, мы оказываемся «на острие» и лично я получил уже версию 1.5, а они зачем-то изменили структуру каталогов и теперь при создании проекта появляется 2 папки с одним названием, как уже указывалось в предыдущем посте господином Hohot. У меня вопрос как мне безопасно справиться с импортом при вводе команды
$ sudo perl -pi -e ’s/mysite.urls/urls/g’ mysite/settings.py
должно получиться что то типа $ sudo perl -pi -e ’smysite/mysite.urls/urls/g’ mysite/mysite/settings.py ???
заранее благодарен за ответ!