Когда я пытаюсь запустить работника сельдерея с ./manage.py celeryd --loglevel=DEBUG
, возникает исключение ImportError.
Но если я добавлю строку, которая вызывает исключение в интерпретаторе python:
>>> from select import error as SelectError, poll
Работает без проблем. Я не понимаю, почему импорт сельдерея проваливается.
Вот трассировка:
/usr/local/lib/python2.7/dist-packages/djcelery/loaders.py:103: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
warnings.warn("Using settings.DEBUG leads to a memory leak, never "
Traceback (most recent call last):
File "manage.py", line 19, in <module>
execute_manager(settings)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/pymodules/python2.7/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/djcelery/management/base.py", line 68, in execute
super(CeleryCommand, self).execute(*args, **options)
File "/usr/lib/pymodules/python2.7/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/djcelery/management/commands/celeryd.py", line 25, in handle
worker.run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/celery/bin/celeryd.py", line 101, in run
return self.app.Worker(**kwargs).run()
File "/usr/local/lib/python2.7/dist-packages/celery/apps/worker.py", line 123, in run
self.worker_init()
File "/usr/local/lib/python2.7/dist-packages/celery/apps/worker.py", line 174, in worker_init
self.loader.init_worker()
File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 108, in init_worker
self.on_worker_init()
File "/usr/local/lib/python2.7/dist-packages/djcelery/loaders.py", line 108, in on_worker_init
self.import_default_modules()
File "/usr/local/lib/python2.7/dist-packages/djcelery/loaders.py", line 111, in import_default_modules
super(DjangoLoader, self).import_default_modules()
File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 103, in import_default_modules
for module in imports | self.builtin_modules]
File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 90, in import_task_module
return self.import_from_cwd(module)
File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 98, in import_from_cwd
package=package)
File "/usr/local/lib/python2.7/dist-packages/celery/utils/__init__.py", line 398, in import_from_cwd
return imp(module, package=package)
File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 93, in import_module
return importlib.import_module(module, package=package)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "<my app path>/apps/tasks/crawl.py", line 8, in <module>
from scrapy.crawler import CrawlerProcess
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 3, in <module>
from twisted.internet import reactor, defer
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/reactor.py", line 37, in <module>
from twisted.internet import default
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/default.py", line 50, in <module>
install = _getInstallFunction(platform)
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/default.py", line 44, in _getInstallFunction
from twisted.internet.pollreactor import install
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/pollreactor.py", line 16, in <module>
from select import error as SelectError, poll
ImportError: cannot import name poll