簡體   English   中英

導入錯誤:無法從“werkzeug.serving”導入名稱“run_with_reloader”

[英]ImportError: cannot import name 'run_with_reloader' from 'werkzeug.serving'

當我嘗試運行 Web 應用程序的后端時出現以下錯誤: ImportError: cannot import name 'run_with_reloader' from 'werkzeug.serving' 它來自 \lib\site-packages\werkzeug\serving.py 文件。 我認為這與我的服務器文件中的from flask_socketio import SocketIO行有關。 有任何想法嗎?

此錯誤已得到解決,因此您很可能使用的是舊版本的 Flask-SocketIO。 升級后錯誤應該消失。

我需要繼續使用 flask-socketio v4(對於舊的 socketio.js)並固定到 2.0.x 版本的 Werkzeug 解決了這個問題

--- a/python-flask-socketio-server/requirements.txt
+++ b/python-flask-socketio-server/requirements.txt
@@ -1,4 +1,5 @@
 flask
+Werkzeug==2.0.1
 flask-socketio==4.3.2
 # wheel should not be needed, but avoids pyyaml paho-mqtt bdist_wheel error
 wheel

注意:我還需要告訴 pip 不要使用緩存包,否則它仍然會將有問題的 2.1.x 版本引入正在重新生成的 virtualenv。

pip install --no-cache-dir -r requirements.txt

解決方案是安裝以下 Werkzeug 版本 (Werkzeug-0.10.2.dev0dev-20220510) 以及以下版本:[在 MacOS 中測試]

pip3 install Flask-SocketIO==4.3.1

pip3 install python-engineio==3.13.2

pip3 install python-socketio==4.6.0

pip3 install git+https://github.com/untitaker/werkzeug.git@reloader-perf

我不得不降級WerkzeugFlask以避免這個錯誤。 當涉及Flask-SocketIO時,您可能需要堅持使用舊版本以避免與新版本的Flask不兼容的問題

對我有用的組合是:

Flask-SocketIO==4.3.1
python-engineio==3.13.2
python-socketio==4.6.0
Flask==2.0.3
Werkzeug==2.0.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM