Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.180.161] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте! Решил узучить Django. Но начать не с встроенного сервера, а с настроек полной боевой конфигурации Apache (httpd-2.2.22-win32-x86-openssl-0.9.8t) + Python 2.7.2 + mod_wsgi 3.3 под Windows XP.
Все скачал, поставил. Вот файлик vhost апачевский: вот файл mod.wsgi: вот список ошибок: Как исправить ошибки? |
Сообщ.
#2
,
|
|
|
Цитата Гимнаст @ [*]httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Starting thread to listen on port 80 Эта простая ошибка. Какая-то программа заняла порт 80. Чаще всего Skype занимает этот порт.(сам однажды сталкивался) Для устранения проблемы: Панель управления - Программы и компоненты - Включение или отключение компонентов Windows - Службы IIS. Убрать галочку, OK, перезагрузить компьютер. Может быть и другая проблема. Цитата Если на компьютере включен Брандмауэр Windows или другой сетевой экран, то необходимо добавить Web-сервер Apache в список исключений.Обычно при первом запуске (сразу после установки) выводится запрос о блокировании программы. В этом диалоговом окне следует нажать кнопку Разблокировать. Если диалоговое окно не отобразилось, то необхо- димо вручную добавить Apache в список исключений. Для этого (для Бранд- мауэра Windows) в меню Пуск выбираем Настройка | Панель управления. Далее выбираем пункт Брандмауэр Windows. В открывшемся окне выбира- ем вкладку Исключения. Если в списке нет пункта Apache HTTP Server, нажимаем Добавить программу. В открывшемся окне нажимаем кнопку Обзор. Находим файл httpd.exe (C:\Apache2\bin\httpd.exe или какая-то своя директория) и нажимаем От- крыть, после чего нажимаем OK. |
Сообщ.
#3
,
|
|
|
Gena_96, вообще-то это ошибка означает что нет соответствия указанного имени и IP-адреса. На работоспособность сервера не повлияет.
Гимнаст, у тебя ошибка из-за наличия в wsgi файле кириллицы без указания кодировки в начале файла. В логе ведь ясно сказано что ошибка в 5-ой строке. Напиши в первой строке: # -*- coding: твоя_кодировка -*- |
Сообщ.
#4
,
|
|
|
gruy, да, спс, UTF8 поставил.
Но возникла другая проблема. Рабочай папка D:\WEBWORK. В ней создан проект spacelab, в который добавлено приложение app1. Есть 2 вопроса: 1) если поменять в settings.py 'app1' на spacelab.app1 как быть и должно по идее, мне в лонах апача пишет, что мол нет такого(если оставить то на ЭТО не ругается): settings.py кусок: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', #'spacelab.app1', 'app1', # Uncomment the next line to enable the admin: # 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', ) error: [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3256): Exception occurred processing WSGI script 'D:/WEBWORK/sites/spacelab/mod.wsgi'. [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] Traceback (most recent call last): [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 272, in __call__ [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] response = self.get_response(request) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\base.py", line 169, in get_response [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\base.py", line 203, in handle_uncaught_exception [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return debug.technical_500_response(request, *exc_info) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\views\\debug.py", line 59, in technical_500_response [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] html = reporter.get_traceback_html() [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\views\\debug.py", line 151, in get_traceback_html [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return t.render(c) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 123, in render [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return self._render(context) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 117, in _render [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return self.nodelist.render(context) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 744, in render [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] bits.append(self.render_node(node, context)) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\debug.py", line 73, in render_node [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] result = node.render(context) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\debug.py", line 90, in render [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] output = self.filter_expression.resolve(context) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 536, in resolve [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] new_obj = func(obj, *arg_vals) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\defaultfilters.py", line 695, in date [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return format(value, arg) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 285, in format [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return df.format(format_string) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 30, in format [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] pieces.append(force_unicode(getattr(self, piece)())) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 191, in r [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return self.format('D, j M Y H:i:s O') [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 30, in format [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] pieces.append(force_unicode(getattr(self, piece)())) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\encoding.py", line 71, in force_unicode [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] s = unicode(s) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\functional.py", line 206, in __unicode_cast [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return self.__func(*self.__args, **self.__kw) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\__init__.py", line 81, in ugettext [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return _trans.ugettext(message) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 286, in ugettext [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] return do_translate(message, 'ugettext') [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 276, in do_translate [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] _default = translation(settings.LANGUAGE_CODE) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 185, in translation [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] default_translation = _fetch(settings.LANGUAGE_CODE) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 162, in _fetch [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] app = import_module(appname) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] __import__(name) [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] TemplateSyntaxError: Caught ImportError while rendering: No module named spacelab.app1 2) как избавится от вот этой ошибки? ImportError at / [B]No module named spacelab.urls [/B] Request Method: GET Request URL: http://spacelab-kfu.ru/ Django Version: 1.3.1 Exception Type: ImportError Exception Value: No module named spacelab.urls Exception Location: D:\WEBWORK\Python\lib\site-packages\django\utils\importlib.py in import_module, line 35 Python Executable: D:\WEBWORK\Apache\bin\httpd.exe Python Version: 2.7.2 Python Path: ['D:/WEBWORK/sites/spacelab', 'C:\\WINDOWS\\system32\\python27.zip', 'D:\\WEBWORK\\Python\\Lib', 'D:\\WEBWORK\\Python\\DLLs', 'D:\\WEBWORK\\Python\\Lib\\lib-tk', 'D:\\WEBWORK\\Apache', 'D:\\WEBWORK\\Apache\\bin', 'D:\\WEBWORK\\Python', 'D:\\WEBWORK\\Python\\lib\\site-packages'] Server time: Wed, 1 Feb 2012 21:12:36 +0300 mod.wsgi: # -*- coding: utf-8 -*- import sys import os import os.path sys.path.insert(0, os.path.dirname(__file__)) os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler() urls.py: # -*- coding: utf-8 -*- from django.conf.urls.defaults import * # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Example: # (r'^mysite/', include('mysite.foo.urls')), (r'^spacelab/', include('spacelab.urls')), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: (r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)), ) vhost: <VirtualHost 127.0.0.1:80> ServerName spacelab-kfu.ru DocumentRoot "D:/WEBWORK/sites/spacelab/" Alias /media/ "D:/WEBWORK/sites/spacelab/media" <Location "D:/WEBWORK/sites/spacelab/media"> SetHandler None </Location> <Directory "D:/WEBWORK/sites/spacelab/media"> Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing </Directory> Alias /admin_media/ "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media/" <Location "/admin_media/"> SetHandler None </Location> <Directory "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media"> Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing </Directory> WSGIScriptAlias / "D:/WEBWORK/sites/spacelab/mod.wsgi" <Directory "D:/WEBWORK/sites/spacelab"> Order allow,deny Allow from all </Directory> </VirtualHost> |
Сообщ.
#5
,
|
|
|
spacelab - это каталог всего проекта, mod.wsgi у тебя лежит в нем же, и ты добавляешь в системный путь этот же каталог spacelab. Таким образом сам spacelab не является доступным для вызова в качестве модуля, а только его содержимое. Можно сделать, например, так:
d = os.path.dirname(os.path.realpath(__file__)) sys.path.append(os.path.join(d, '../')) sys.path.append(d) |
Сообщ.
#6
,
|
|
|
gruy, огромное спасибо!!!
У меня была таже проблема, я чуть голову не сломал (только начинаю знакомиться с апач+dlango). Просьба, можно чуть подробнее объяснить этот момент: Цитата spacelab - это каталог всего проекта, mod.wsgi у тебя лежит в нем же, и ты добавляешь в системный путь этот же каталог spacelab. Таким образом сам spacelab не является доступным для вызова в качестве модуля, а только его содержимое. Работать-то заработало, но ещё хочу понять почему не работало... |
Сообщ.
#7
,
|
|
|
Python ищет указываемый модуль в каталогах, которые ему указывают (sys.path). Если у тебя проект в /path/to/project, и весь этот путь добавлен в sys.path, то при попытке импорта project он будет искаться в /path/to/project. Поэтому и нужно было указывать путь в sys.path только как /path/to.
|