У меня есть два сайта django, которые используют одну и ту же базу данных и делятся некоторыми кодами. Основной родительский сайт - это экстрасеть для сотрудников и подрядчиков, а второй сайт предоставляет некоторые данные нескольким нашим партнерам.
Мне удалось настроить сайты для работы, но я обнаружил, что если я запустил Apache и зайду на основной сайт, то партнерский сайт не будет работать, возвращая «Внутренняя ошибка сервера». Если я перезапущусь и зайду на партнерский сайт, основной сайт не будет работать.
Так что я думаю, они конфликтуют из-за ресурсов.
Журнал сервера (см. Внизу) показывает, что это проблема с модулем win32 / lib / pywintypes.py, строка 114. В других местах было предложено закомментировать эти строки (см. Ниже). Итак, я попробовал это, и это работает.
Я не совсем понимаю, что происходит в коде, и не будет ли комментирование этого позже причиной проблем. Итак, вопрос:
Есть ли что-то еще, что может быть причиной этого? Эта помадка «безопасна»?
# py2k and py3k differences:
# On py2k, after doing "imp.load_module('pywintypes')", sys.modules
# is unchanged - ie, sys.modules['pywintypes'] still refers to *this*
# .py module - but the module's __dict__ has *already* need updated
# with the new module's contents.
# However, on py3k, sys.modules *is* changed - sys.modules['pywintypes']
# will be changed to the new module object.
# SO: * on py2k don't need to update any globals.
# * on py3k we update our module dict with the new module's dict and
# copy its globals to ours.
old_mod = sys.modules[modname]
# Python can load the module
mod = imp.load_dynamic(modname, found)
# Check the sys.modules[] behaviour we describe above is true...
if sys.version_info < (3,0):
#The fudge bit !!!!!!!!!!!!!!!!!
#assert sys.modules[modname] is old_mod
#assert mod is old_mod
pass
else:
assert sys.modules[modname] is not old_mod
assert sys.modules[modname] is mod
# as above - re-reset to the *old* module object then update globs.
sys.modules[modname] = old_mod
globs.update(mod.__dict__)
Traceback
mod_wsgi (pid=7164): Exception occurred processing WSGI script 'E:/Programming/django_site/extranet_site/apache/django.wsgi'.
Traceback (most recent call last):
File "C:\\Python26\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 241, in __call__
response = self.get_response(request)
File "C:\\Python26\\lib\\site-packages\\django\\core\\handlers\\base.py", line 73, in get_response
response = middleware_method(request)
ile "C:\\Python26\\lib\\site-packages\\django\\contrib\\sessions\\middleware.py", line 10, in process_request
engine = import_module(settings.SESSION_ENGINE)
File "C:\\Python26\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
__import__(name)
File "C:\\Python26\\lib\\site-packages\\django\\contrib\\sessions\\backends\\db.py", line 2, in <module>
from django.contrib.sessions.models import Session
File "C:\\Python26\\lib\\site-packages\\django\\contrib\\sessions\\models.py", line 4, in <module>
from django.db import models
File "C:\\Python26\\lib\\site-packages\\django\\db\\models\\__init__.py", line 12, in <module>
from django.db.models.fields.files import FileField, ImageField
File "C:\\Python26\\lib\\site-packages\\django\\db\\models\\fields\\files.py", line 8, in <module>
from django.core.files.storage import default_storage
File "C:\\Python26\\lib\\site-packages\\django\\core\\files\\storage.py", line 7, in <module>
from django.core.files import locks, File
File "C:\\Python26\\lib\\site-packages\\django\\core\\files\\locks.py", line 25, in <module>
import pywintypes
File "C:\\Python26\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 124, in <module>
__import_pywin32_system_module__("pywintypes", globals())
File "C:\\Python26\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 114, in __import_pywin32_system_module__
assert sys.modules[modname is old_mod
AssertionError