无法在heroku django中导入名称_uuid_generate_random

我正在研究扫描用户Gmail收件箱并提供报告的项目。 我已经将它部署在以下规格的heroku中

语言: Python 2.7

框架: Django 1.8

任务调度程序: 芹菜Rabbitmq-bigwig经纪人url)

现在,当heroku执行它芹菜不给我输出。 在Heroku推挤显示Collectstaticconfiguration错误 。 我曾尝试使用whitenoise包

还尝试执行: heroku运行python manage.py collectstatic –dry-run –noinput仍然收到相同的错误。

$ heroku运行python manage.py collectstatic –noinput给出了错误的以下细节。

File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line utility.execute() File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 303, in execute settings.INSTALLED_APPS File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in __getattr__ self._setup(name) File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 44, in _setup self._wrapped = Settings(settings_module) File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 92, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "/app/salesblocker/__init__.py", line 5, in <module> from .celery import app as celery_app File "/app/salesblocker/celery.py", line 5, in <module> from celery import Celery File "/app/.heroku/python/lib/python2.7/site-packages/celery/__init__.py", line 131, in <module> from celery import five # noqa File "/app/.heroku/python/lib/python2.7/site-packages/celery/five.py", line 153, in <module> from kombu.utils.compat import OrderedDict # noqa File "/app/.heroku/python/lib/python2.7/site-packages/kombu/utils/__init__.py", line 19, in <module> from uuid import UUID, uuid4 as _uuid4, _uuid_generate_random ImportError: cannot import name _uuid_generate_random 

我也尝试将heroku提交回滚到之前的工作提交,并克隆该代码,但在下一次提交(更改:从媒体文件夹中删除媒体图像),它再次显示相同的错误。

提前致谢

你遇到这个问题 ,这影响Python 2.7.11(芹菜需要Kombu)。

这个问题是固定在Kombu 3.0.30。

虽然升级kombu是理想的select,但如果您遇到不允许使用的较旧的依赖关系,请将其放置在settings.py的顶部。

 import uuid uuid._uuid_generate_random = None 

这是有效的,因为_uuid_generate_random在这里被删除了 ,这只是恢复了默认值。 这个黑客看起来是合理的,因为Kombu只是检查这个工作,解决了2007年解决的一个bug ,如果你需要这个修复,因为最近的Python更新,你本质上不会受到影响:)

是的,阿拉斯代尔提到的问题是对这个错误负责。 我通过遵循这个工作stream程来解决我的项目中的问题,只保留了基本的要求 – freeze.txt我列出芹菜,但不是像Kombu的依赖。

然后,升级基本软件包就足够了,然后用Kombu版本重新冻结完整的依赖关系列表。

 pip install --upgrade -r requirements-to-freeze.txt pip freeze > requirements.txt 

并testing一下,以确保升级没有打破别的东西;)