2時間前にプッシュされた1.0.0リリースは、flaskを使用している人々のための重大な変更を公開しました。 それが望ましい効果であり、フラスコがそれらのバージョンを固定する必要があるかどうか、またはこのプロジェクトで変更を行う必要があるかどうかはわかりません。
問題が発生した場合は、完全なトレースバックを投稿してください。
この問題はFlaskにはなく、Werkzeugはこれらの非推奨のインポートを引き続きサポートしません。 0.16は、5か月間非推奨の警告を発行しています。 そのバージョンを中間ステップとして使用して、どのインポートが変更されたかを識別します。
問題を開くか、関連するプロジェクトでPRを送信することにより、拡張機能やその他のプロジェクトを支援できます。
Traceback (most recent call last):
File "/usr/local/bin/pytest", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 73, in main
config = _prepareconfig(args, plugins)
File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 224, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
gen.send(outcome)
File "/usr/local/lib/python3.7/site-packages/_pytest/helpconfig.py", line 89, in pytest_cmdline_parse
config = outcome.get_result()
File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 794, in pytest_cmdline_parse
self.parse(args)
File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1000, in parse
self._preparse(args, addopts=addopts)
File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 948, in _preparse
self.pluginmanager.load_setuptools_entrypoints("pytest11")
File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 299, in load_setuptools_entrypoints
plugin = ep.load()
File "/usr/local/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 94, in load
module = import_module(match.group('module'))
File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "/usr/local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 143, in exec_module
exec(co, module.__dict__)
File "/usr/local/lib/python3.7/site-packages/pytest_flask/plugin.py", line 14, in <module>
from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/usr/local/lib/python3.7/site-packages/werkzeug/__init__.py)
それは最も辛いフラスコです、あなたは彼らに連絡したいと思うでしょう。 pytest-flask0.15.1はすでに修正されてリリースされているようです。
+1、次の問題があります:
packages/flask_wtf/recaptcha/widgets.py", line 5, in <module>
from werkzeug import url_encode
ImportError: cannot import name 'url_encode'
+1この最新リリースも依存関係を壊しています。 V1.0.0の問題のようです
`` `トレースバック(最後の最後の呼び出し):
ファイル「/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask/cli.py」、240行目、locate_app
__import __(module_name)
ファイル "/home/ec2-user/butter_web/butter.py"、1行目
アプリインポートアプリから、db
ファイル "/home/ec2-user/butter_web/app/__init__.py"、8行目
フラスコからadmin.contrib.sqlaインポートModelView
ファイル "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py"、2行目
from .view import ModelView
ファイル "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py"、19行目
フラスコ_admin.modelからインポートBaseModelView
ファイル "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/__init__.py"、2行目
from .base import BaseModelView
ファイル "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/base.py"、8行目
werkzeugからimportsecure_filename
ImportError:名前 'secure_filename'をインポートできません
ここでの解決策は何ですか? 0.16.1を明示的にロックしても、これは解決されません。
@ tjohnson4何をすべきかについては、上記の私のコメントを参照してください。 Flaskの問題に投稿したエラーは無関係でした。
これは完全にひどいユーザーエクスペリエンスです。 修正されたFlask-WTF0.14.3は数時間前にリリースされました。 エコシステムの大部分がこれに対応する準備ができていなかったときに、サポートを削除するリリースをどのようにプッシュしますか?
パレットライブラリの1つを更新すると、6か月以内に実行していたコードが壊れたのはこれが3回目だと思います。
同様の問題
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/ubuntu/swagger-codegen/samples/server/petstore/flaskConnexion/swagger_server/__main__.py", line 3, in <module>
import connexion
File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/__init__.py", line 3, in <module>
from .apis import AbstractAPI # NOQA
File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/__init__.py", line 1, in <module>
from .abstract import AbstractAPI # NOQA
File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/abstract.py", line 14, in <module>
from ..operation import Operation
File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/operation.py", line 7, in <module>
from .decorators import validation
File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/decorators/validation.py", line 9, in <module>
from werkzeug import FileStorage
ImportError: cannot import name 'FileStorage'
回避策
要件にwerkzeug == 0.16.1
を追加します。txtは私のためにそれを解決しました
@ Abdelsalam-Abbas connexionは、2019年10月にインポートを修正しました-おそらく古いバージョンを実行していますか?
https://github.com/zalando/connexion/releases/tag/2.4.0
Flaskセッションが壊れている場合:
File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 61, in init_app
app.session_interface = self._get_interface(app)
File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 90, in _get_interface
session_interface = FileSystemSessionInterface(
File "/usr/local/lib/python3.8/site-packages/flask_session/sessions.py", line 313, in __init__
from werkzeug.contrib.cache import FileSystemCache
ModuleNotFoundError: No module named 'werkzeug.contrib'
要件にwerkzeug == 0.16.1
を追加します。txtは私のためにそれを解決しました
Flask-RestPlusが壊れている場合:
Traceback (most recent call last):
File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/export/home/hysdsops/sciflo/ops/pele/app.py", line 4, in <module>
from pele import create_app, db
File "/export/home/hysdsops/sciflo/ops/pele/pele/__init__.py", line 5, in <module>
from flask_restplus import apidoc
File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/__init__.py", line 4, in <module>
from . import fields, reqparse, apidoc, inputs, cors
File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/fields.py", line 17, in <module>
from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/export/home/hysdsops/sciflo/lib/python3.7/site-packages/werkzeug/__init__.py)
要件にwerkzeug == 0.16.1
を追加します。txtは私のためにそれを解決しました。
werkzeug
のLocalProxy
から返されたフラスコリクエストオブジェクトが、ローカルにあるものとは異なるバージョンからのものである理由について、誰かが洞察を提供してくれませんか?
このリリース以降、次のエラーが発生します。
File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/flask/json.py", line 251, in jsonify
if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:
File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__
return getattr(self._get_current_object(), name)
AttributeError: 'Request' object has no attribute 'is_xhr'
is_xhr
はFlask 1.0
で削除されたプロパティですが、ローカルでは0.12.2
インストールされています。 明確にするために、バグがFlaskにないため、この問題をここに投稿します。むしろ、 LocalProxy
がこのFlaskアプリの新しいバージョンを返す理由/方法について混乱しています。期待。
@LucasLLC is_xhr
はFlaskの直接の一部ではありませんでした(Flask 1.0で削除されたことを示す参照はありますか?変更ログに表示されません)。むしろ、Flaskが公開するのは常にWerkzeugAPIでした。 Werkzeugに関しては、81e10efbf3a83daf09c55cd7cc13ac6c6464d405で削除されていることがわかります。
まだ依存関係を固定して定期的にアップグレードすることをお勧めします。これは、詩などのツールによって簡単にできる雑用です。
@pgjones理想的には、werkzeugを<1.0.0に固定するフラスコ0.12のバグ修正リリースを行います。 これは結局、Flaskの悪いピンです。
また、はい、このAPIは事実上Flask APIであり、次のように文書化されています: //flask.palletsprojects.com/en/0.12.x/api/#flask.Request.is_xhr
@LucasLLC
is_xhr
はFlaskの直接の一部ではありませんでした(Flask 1.0で削除されたことを示す参照はありますか?変更ログに表示されません)。むしろ、Flaskが公開するのは常にWerkzeugAPIでした。 Werkzeugに関しては、 81e10efで削除されていることが
ああ、私の間違い。 このメソッドで生成された警告を参照していましたが、それがWerkzeugからのものであることに気づいていませんでした。これは、はるかに理にかなっています。
まだ依存関係を固定して定期的にアップグレードすることをお勧めします。これは、詩などのツールによって簡単にできる雑用です。
ヒントをありがとう! 詩を調べます。
odoo12のインストール中に問題が発生しました:
import werkzeug.contrib.fixers
ImportError: No module named 'werkzeug.contrib'
しかし、それを解決しました
Werkzeug==0.16.1
同じエラーが発生しました
ModuleNotFoundError:「werkzeug.contrib」という名前のモジュールがありません
フラスコで同じ問題を抱えている
Werkzeug==0.16.1
設定すると、問題が修正されました。
`` `
フラスコからadmin.contrib.sqlaインポートModelView
ファイル "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py"、2行目
from .view import ModelView
ファイル "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py"、18行目
フラスコ_admin.modelからインポートBaseModelView
ファイル "/usr/local/lib/python3.6/site-packages/flask_admin/model/__init__.py"、2行目
from .base import BaseModelView
ファイル "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py"、8行目
werkzeugからimportsecure_filename
ImportError:名前 'secure_filename'をインポートできません
最も参考になるコメント
これは完全にひどいユーザーエクスペリエンスです。 修正されたFlask-WTF0.14.3は数時間前にリリースされました。 エコシステムの大部分がこれに対応する準備ができていなかったときに、サポートを削除するリリースをどのようにプッシュしますか?
パレットライブラリの1つを更新すると、6か月以内に実行していたコードが壊れたのはこれが3回目だと思います。