2010-10-09 5 views
3

Так что я только что обновил django до 1.2.3, и теперь, когда я пытаюсь запустить «python manage.py shell» для работы в среде django, я получаю следующую ошибку.Django/Celery не может найти importlib

Traceback (most recent call last): 


File "manage.py", line 11, in <module> 
    execute_manager(settings) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 191, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 220, in execute 
    output = self.handle(*args, **options) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 351, in handle 
    return self.handle_noargs(**options) 
    File "/opt/local/lib/python2.5/site-packages/django/core/management/commands/shell.py", line 18, in handle_noargs 
    loaded_models = get_models() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", line 167, in get_models 
    self._populate() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", line 64, in _populate 
    self.load_app(app_name) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", line 78, in load_app 
    models = import_module('.models', app_name) 
    File "/opt/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/opt/local/lib/python2.5/site-packages/django_celery-2.0.3-py2.5.egg/djcelery/models.py", line 7, in <module> 
    from celery import conf 
    File "/opt/local/lib/python2.5/site-packages/celery-2.0.3-py2.5.egg/celery/conf.py", line 6, in <module> 
    from celery import routes 
    File "/opt/local/lib/python2.5/site-packages/celery-2.0.3-py2.5.egg/celery/routes.py", line 2, in <module> 
    from celery.utils import instantiate, firstmethod, mpromise 
    File "/opt/local/lib/python2.5/site-packages/celery-2.0.3-py2.5.egg/celery/utils/__init__.py", line 9, in <module> 
    import importlib 
ImportError: No module named importlib 

Любые идеи. Я не могу найти, что здесь происходит, и все, что я могу сказать, что я запускаю те же версии на своем веб-сервере, и у меня нет такой же ошибки.

+0

Сельдерей должен добавить importlib в качестве зависимости, если он не является частью вашей версии Python. Если вы не установили через обычные маршруты, вы можете установить importlib самостоятельно: easy_install -U importlib – asksol

ответ

8

importlib, который был добавлен в Python 2.7/3.1, я считаю. Вы можете загрузить порт для Pyton 2.5 здесь:

Также проверьте setup.cfg для сельдерея вблизи дна и убедитесь, что все остальные требования выполнены (в нижней части сценария).

1

importlib был добавлен в Python в версии 3.1, а затем передан в Python 2.7. В PyPI доступны сторонние backports.

Также обратите внимание, что «backported to 2.7» не означает, что все версии после 2.7 будут иметь importlib. Python 3.0, думаю, нет есть импортlib.