我有一個Django實例的神祕不能進口的memcache的......後消失ImportError;和zipimporters從pkgutil.iter_importers()
燈配置(一段時間的磨合就好了之後發生的一些未知事件。):
- RHEL 5.7
- 阿帕奇2.2.3
- mod_wsgi的2.3(動態鏈接到Python2.5.4。所以)
- 的Python 2.5.4
- 的Django 1.2
內存緩存坐在:/usr/local/lib/python2.5/site-packages/python_memcached-1.44-py2.5.ee/memcache.pyc
如果我打開一個命令shell,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,需要在egg內部查找並找到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')
這是怎麼回事?如果沒有解決方法,我可以做些什麼來使其工作?