Múltiples sitios django en Apache / Windows / mod_wsgi - problema con win32
Tengo dos sitios de django que usan la misma base de datos y comparten parte del código. El sitio principal para padres es una extranet para el personal y los contratistas, mientras que el segundo sitio expone algunos de los datos a algunos de nuestros socios.
He logrado configurar sitios para que funcionen, pero descubrí que si iniciaba Apache y entraba en el sitio principal, el sitio asociado no funcionaría, devolviendo un "Error interno del servidor". Si reiniciaba y entraba en el sitio asociado, entonces el sitio principal no funcionaría.
Así que supongo que están en conflicto por los recursos.
El registro del servidor (ver abajo) muestra que es un problema con el módulo win32 / lib / pywintypes.py, línea 114. En otras partes, se ha sugerido comentar estas líneas (ver más abajo). Así que he intentado esto y funciona.
Realmente no entiendo lo que está sucediendo en el código y si comentarlo solo me causará problemas más adelante. Entonces la pregunta es:
¿Hay algo más que pueda estar causando esto? ¿Es este dulce 'seguro' hacer?
# 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__)
Rastrea
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