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:没有名为瓶子的模块

ImportError:没有名为枚举的模块

ImportError:没有名为“appdirs”的模块

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块

ImportError:没有名为 ghostscript 的模块