ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?)
我在2013 - 2014年建立了这个应用程序,从那以后它没有看到太多的维护。但现在有一个问题,一些AWS密钥需要更改,但我无法部署该应用程序。
git push heroku master
导致构建失败,除非我
heroku config:set DISABLE_COLLECTSTATIC=0
所以,我这样做了,知道它可能会破坏网站,但它甚至没有达到那一点,因为我发现我无法部署直到升级到Cedar-14。好吧,所以我这样做,然后推,然后我在每个dyno上得到ImportError。
app/web.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random
app/celerybeat.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random
app/celeryd.1: ImportError: Could not import settings 'settings.prod' (Is it on sys.path? Is there an import error in the settings file?): cannot import name _uuid_generate_random
所以我读了here我需要更新Kombu。好的,所以我这样做。现在同样的问题,但在错误结束时,我看到了这一点:
cannot import name ResourceError
我用google搜索,搜索过,无法在任何地方找到这个错误,如果我添加Heroku,我会得到零结果。上次搜索错误代码的结果是什么时候返回零?
我能想到的唯一一件事就是我正在运行一个非常古老的gunicorn版本gunicorn==0.14.6
,但我不能100%确定升级会做什么,以及其他依赖关系我和#39;我需要解冻和更新,或者我应该在Heroku Procfile中使用的新命令应该是什么,因为gunicorn_django命令已被弃用并被删除。
任何关于如何最好地更新此应用程序的想法,以便我可以部署一个简单的设置更改,将不胜感激。
这是Procfile,如果这为错误提供了任何其他上下文:
web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload settings.prod
celeryd: python manage.py celeryd -E -B --loglevel=INFO --settings=settings.prod
celerybeat: python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler --settings=settings.prod
答案 0 :(得分:0)
回答我自己的问题。
mrooney this post首先归功于{{3}},这使我到了正确的位置。问题是Kombu,但是更新这个库会让我陷入依赖地狱,每次升级都会导致其他依赖性破坏。
最初的问题是由于自动构建执行了一个collectstatic而没有使用我的--settings = settings.prod标志,因此执行heroku config:set DISABLE_COLLECTSTATIC=0
是最初的正确操作。连续的问题都与最初的问题无关。幸运的是,我在S3上托管了所有静态文件,因此不需要collectstatic命令。
mrooney的建议是设置文件中的几行来捕获缺少的_uuid_generate_random函数,并指定一个默认值。我最终需要更新gevent,但升级并没有破坏其他任何东西,之后,heroku构建成功。
我想为Heroku的免费PaperTrail插件添加一个喊叫,没有它,我绝对不知道如何解决问题。如果你还没有使用它,我建议你先开始吧。
Wurd。