2015-11-25 17 views
0

最近,由於升級到Flask-Login 0.3,燒瓶安全性已經破裂。問題在於方法定義分別爲is_active()和is_authenticated()分別爲is_active和is_authenticated。這種變化是打破我的瓶的應用程序註冊,登錄。爲什麼我的pip安裝flask-security繼續下載錯誤的項目代碼?

在這個項目中的URL Correct Flask-Security code我需要這個版本,因爲如果你看一下decorators.py文件is_authenticated()方法以前爆發正確改爲is_authenticated。

但是,無論何時我調用pip install flask-security,我都會得到一個包含不正確代碼的版本。我的站點包目錄中的版本指定了1.7.4,它應該是正確的版本。那麼爲什麼這會打破。

我解決了這與easy_install flask-security,但我很困惑,爲什麼pip安裝不起作用。有沒有其他人有這個問題?

回答

0

我只是建議使用舊版本的Flask-Login,直到Flask-Security在PyPi上更新它們的版本。在您的requirements.txt文件中只需指定舊版本。例如您的requirements.txt可能看起來像:

flask 
flask-login==0.2.11 
flask-security 
flask-wtf 

然後你可以用pip install -r requirements.txt安裝它,你要善於去。

爲了解釋遠一點,即使在1.7.4 the decorator code這裏治療user.is_authenticated()作爲可調用,而不是一個布爾值,因爲它現在是(在燒瓶登錄0.3),也因爲瓶,保安告訴PIP「抓住我的最新版本的Flask-Login!「點子搶0.3,問題出現。

如果你看看code in the development branch here,你可以看到它已經被修正,現在把它當作一個布爾值,但是這個開發版本不穩定/推送到PyPi。

減少的問題在未來,你可以看到,在開發分支的requirements.txt現在他們已經有了瓶,登錄指定爲Flask-Login>=0.3.0,<0.4這使得該燒瓶登錄的開發人員不會做出任何重大的變動的假設在對0.4的路上進行小幅修改期間。

+0

你說得對。我忘了PyPi是pip的官方軟件包倉庫。感謝澄清。 –

+0

考慮到Flask-Login人員尚未使用語義版本化,很難說他們不會再次進行API更改。我會建議丹針對他所有的依賴(包括可傳遞的依賴)。另外,https://github.com/pypa/pip/issues/988。 – sholsapp