我有一个旧版本的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?
答案 0 :(得分:1)
你应该做的是:
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分支,请执行相反的操作。您的应用程序实际上对您正在更改它的版本 - 部署一次并将其更改回来并不重要。那个应该完全消灭你的包缓存,此时你会好起来的。