ImportError:没有名为 timeutils 的模块
Posted
技术标签:
【中文标题】ImportError:没有名为 timeutils 的模块【英文标题】:ImportError: No module named timeutils 【发布时间】:2017-03-25 06:12:10 【问题描述】:我正在尝试遵循 Django-celery 的安装教程。安装后需要运行migrate来制作必要的表,但是出现了这个错误:
Traceback(最近一次调用最后一次):
文件“manage.py”,第 10 行,在
execute_from_command_line(sys.argv)
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/django/core/management/__init__.py”,
第 353 行,在 execute_from_command_line 中
utility.execute()
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/django/core/management/__init__.py”,
第 327 行,正在执行中
django.setup()
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/django/__init__.py”,
第 18 行,设置中
apps.populate(settings.INSTALLED_APPS)
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/django/apps/registry.py”,
第 108 行,在填充中
app_config.import_models(all_models)
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/django/apps/config.py”,
第 202 行,在 import_models 中
self.models_module = import_module(models_module_name)
文件“/usr/lib/python2.7/importlib/__init__.py”,第 37 行,在 import_module 中
__import__(名称)
文件“/home/guilherme/.virtualenvs/martizi-api/local/lib/python2.7/site-packages/djcelery/models.py”,
第 15 行,在
中从 celery.utils.timeutils 导入 timedelta_seconds
ImportError: 没有名为 timeutils 的模块
我在 Internet 上没有找到有关此“timeutils”的任何信息... 我正在使用 Django 1.9.8 和 Django-celery 3.1.17。
请帮忙!
【问题讨论】:
也许这是这个包:pypi.python.org/pypi/cs.timeutils ? 查看此问题:github.com/celery/django-celery/issues/491。如果您使用的是 celery 4.0,这可能是问题所在,因为 django-celery 不支持此版本。 对,我使用的是 celery 4.0...我很困惑,所以我不能使用 django-celery?当我默认安装 pip 包 django-celery 时安装 celery 4.0 我怎么说 pip install django-celery 设置以前版本的 celery?在这种情况下,我该怎么办? tks @elethan @GuilhermeRibeirodeSouza 我的印象是,如果你想使用 django-celery,你必须降级到旧版本的 celery,但我不能 100% 确定,因为我从未使用过 celery。 @elethan,是的,我也这么认为,但是降级到旧版本的 celery 看起来很辛苦,因为我没有找到任何降级 celery 包的方法。 【参考方案1】:django-celery==3.1.17
似乎不适用于较新版本的celery
(请参阅this github issue)。
如果您可以接受使用较早版本的 celery
,您可以卸载当前版本,安装特定的较旧版本,django-celery
应该可以再次使用。例如:
$ pip uninstall celery
$ pip install celery==3.1
在django-celery
支持更新版本的celery
之前,应该可以让一切正常运行。
【讨论】:
【参考方案2】:对于 Django==1.9.8
$ pip install django-celery==3.1.17
$ pip uninstall celery
$ pip install celery==3.1.25
【讨论】:
【参考方案3】:有点晚了,但这对我有帮助,pip3 帮了我大忙,我的项目需要最新版本的 django-celery,所以我把它放在了我的 requirements.txt 文件中(在写这篇文章时是最新的版本是 django-celery==3.3.1)
celery==
croniter==
django-celery==3.3.1
django-celery-beat==
kombu==
然后运行命令
pip3 install -r requirements.txt
它会自动检查各种包的依赖关系并安装所有其他包,然后我运行 pip freeze 并得到
celery==3.1.26.post2
croniter==1.0.15
django-celery==3.3.1
django-celery-beat==2.0.0
kombu==3.0.37
【讨论】:
【参考方案4】:你可以试试
pip install --no-deps --ignore-installed django-celery
为我工作
【讨论】:
以上是关于ImportError:没有名为 timeutils 的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为 websocket 的模块