モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

werkzeugでurl_decodeのエラーが発生する

Pythonでflask_loginを使っているアプリで、下記のエラーが発生した。

ImportError: cannot import name 'url_decode' from 'werkzeug.urls'

werkzeug.urlsなんてimportしてないのになんで??と思ったら、どうもflask_loginで呼ばれているようだった。
そして、werkzeug.urlsがv3.0以降でurl_decodeがなくなっているのに、まだflask側での対応がされていないため、このエラーが発生するとのことだった。

stackoverflow.com


そこで以下のようにpyproject.tomlで、werkzeugのバージョンを2の最終の2.3に固定して、flaskを2.3以降にすることで対応できた。

"Werkzeug==2.3.7",
"flask>=2.3.3",
"flask-login>=0.6.2",

ただし、すでにwerkzeugが3が入っているとだめなので、一旦Werkzeugやflaskを外してsyncして、再度上記の依存を記述してsyncすることで対応できた。

最終的に入ったバージョンは以下の通り。

Flask==2.3.3
Flask-Login==0.6.3
Werkzeug==2.3.7