2014-05-09 67 views
2

我有一箇舊版本的django-bouncer需要使用hashcompat,現在已經廢棄了。由於我得到錯誤告訴我這一點,我做了pip uninstall django-bouncer,然後使用pip install https://github.com/shelfworthy/django-bouncer/archive/master.tar.gz(我也將它重新添加到我的requirements.txt文件中)安裝了爲Django 1.6升級的版本(它使用hashlib而不是hashcompat)。Heroku沒有拿起更新的django-bouncer軟件包

本地,這工作正常。但是,當我推到Heroku時,我仍然收到錯誤「No module named hashcompat。」。

我試着做一個git push heroku master --force,但這並沒有解決問題。然後我通過做heroku repo:reset -a <myappname>重置應用程序,然後做了一個新的git push heroku master。不幸的是,我仍然在我的Heroku應用程序中遇到錯誤。

我該如何讓Heroku獲得django-bouncer的升級?

+0

你可以發佈你的'requirements.txt'文件嗎? –

回答

1

你應該做的是這樣的:

  • 首先,在你的筆記本電腦本地安裝的Django保鏢的最新版本(您可以通過運行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

這可能與Heroku的包緩存發生衝突;它看到django-bouncer已經安裝好了,不用再重新安裝了。但是,你也不能卸載它。

我記得有一點竅門可以解決這個問題:如果你改變你使用的Python版本,Heroku會清除它的包緩存。因此,如果您使用的是2.7.6,請編輯您的runtime.txt將其更改爲python-3.4.0。如果您已經使用3.x分支,請做相反的事情。您的應用程序實際上在您要更改的版本上運行並不重要 - 部署一次並將其更改回來。那應該完全清除你的包緩存,在這一點上你會很好去。