Heroku没有拿起更新的django-bouncer包

时间:2014-05-09 07:18:12

标签: django heroku

我有一个旧版本的django-bouncer需要hashcompat,现在已经弃用了。由于我收到错误告诉我这个,我做了pip uninstall django-bouncer,然后使用pip install https://github.com/shelfworthy/django-bouncer/archive/master.tar.gz安装了为Django 1.6升级的版本(它使用hashlib而不是hashcompat)(我也根据我的要求重新添加了它。 txt文件)。

在当地,这个工作正常。但是,当我推送到Heroku时,我仍然得到错误"没有名为hashcompat的模块。"

我尝试过git push heroku master --force,但这并没有解决问题。然后我通过执行heroku repo:reset -a <myappname>重置应用程序,然后执行一个新的git push heroku master。不幸的是,我仍然在我的Heroku应用程序上收到错误。

如何让Heroku升级django-bouncer?

2 个答案:

答案 0 :(得分:1)

你应该做的是:

  • 首先,在您的笔记本电脑上本地安装django-bouncer的最新版本(您可以通过运行pip install -U django-bouncer来实现此目的。
  • 接下来,运行:pip freeze | grep django-bouncer,弄清楚笔记本电脑上的最新版本。您应该看到类似的内容:django-bouncer==x.x.x
  • 最后,编辑项目的requirements.txt文件并添加django-bouncer=x.x.x,然后将此更改推送到Heroku。这将迫使Heroku检测需要哪些特定版本的django-bouncer,并为您安装。

希望有所帮助!

答案 1 :(得分:1)

你可能会遇到Heroku的包缓存;它看到已经安装了django-bouncer并且不再费心再安装它。但是,你也无法卸载它。

我记得有一个黑客可以解决这个问题:如果你改变你正在使用的Python版本,Heroku将清除它的包缓存。因此,如果您使用的是2.7.6,请修改runtime.txt以将其更改为python-3.4.0。如果您已经在使用3.x分支,请执行相反的操作。您的应用程序实际上对您正在更改它的版本 - 部署一次并将其更改回来并不重要。那个应该完全消灭你的包缓存,此时你会好起来的。