У меня есть экземпляр Django, который таинственным образом не способен импортировать memcache ... after (какое-то неизвестное событие, которое происходит после определенного периода работы.)
Конфигурация LAMP:
- RHEL 5.7
- Apache 2.2.3
- mod_wsgi 2.3 (динамически связан с Python2.5.4 .so)
- Python 2.5.4
- Django 1.2
memcache находится в: /usr/local/lib/python2.5/site-packages/python_memcached-1.44-py2.5.ee/memcache.pyc
Если я открою командную оболочку и import memcache
, она импортируется очень хорошо.
И какое-то времяв Django import memcache
работает просто отлично.
Но после какого-то неизвестного события происходит сбой импорта: ImportError: No module named memcache
Как раз перед предыдущей точкой сбоя, я зарегистрировал системный путь и путьявно включает /usr/local/lib/python2.5
и /usr/local/lib/python2.5/site-packages
.
Я также зарегистрировал ответ на pkgutil.iter_importers()
и обнаружил кое-что интересное: в момент сбоя iter_importers не содержит ни одного из zipimporters - и это zipimporterэто необходимо, чтобы заглянуть внутрь яйца и найти memcache.
Если я вручную импort memcache, он функционирует:
try:
import memcache
except ImportError:
import zipimport
zi = zipimport.zipimporter('/usr/local/lib/python2.5/site-packages/python_memcached-1.44-py2.5.egg')
memcache = zi.load_module('memcache')
Что происходит?Что я могу сделать, чтобы это работало без обходного пути?