我正在使用django运行一个应用程序,并且我想使用celery来执行一些预定的任务。
根据oficial docs,在我的settings.py文件中设置代理传输
BROKER_URL = 'django://'
并将kombu.transport.django添加到已安装的应用程序中
INSTALLED_APPS = (
....
'kombu.transport.django',
....)
但是,当我尝试使用
python manage.py syncdb
同步数据库时,出现以下错误:Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 312, in execute
django.setup()
File "C:\Python27\lib\site-packages\django\__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Python27\lib\site-packages\django\apps\registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "C:\Python27\lib\site-packages\django\apps\config.py", line 119, in create
import_module(entry)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named django
有什么想法为什么我要这个吗?我已经正确安装了django,并且如果我从已安装的应用程序中删除
kombu.transport.django
,则该应用程序可以正常运行。编辑:这似乎是海带的问题。我用
pip install kombu
安装了它。当我尝试导入文件'kombu.transport'时,我没有收到错误,但是当我尝试导入'kombu.transport.django'时,却出现了错误:ImportError: No module named django
最佳答案
尽管在您发帖后可能已经发生了,但django模块确实已从kombu软件包中删除。 celery的当前文档指出,从3.1版开始,celery与Django兼容。这意味着您无需修改settings.py即可集成 celery (因此不必包含对kombu的引用)。
删除settings.py中对kombu的引用是正确的解决方案。
这是提交:https://github.com/celery/kombu/commit/65f982ccf31b86157c39a8feb42081410b83abe2
关于python - celery ,海带和Django-导入错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34679687/