在本地主机上运行“streamlit hello”时出现 Websocket 错误

问题描述 投票:0回答:1

Streamlit hello 打开一个浏览器,其中显示一些闪烁的页面元素的轮廓,看起来像是正在尝试加载但无法连接。 我用来运行streamlit hello 的命令行显示了一个websocket 错误。 Chrome 还在开发者选项卡中显示 websocket 错误。 cmd 和浏览器中的错误消息都会不断重复,在进程运行时每隔几秒就会重复一次。

命令:

streamlit hello

浏览器:

http://localhost:8501/

命令行错误:

2024-11-10 12:57:40.144 Uncaught exception
Traceback (most recent call last):
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\http1connection.py", line 278, in _read_message
    delegate.finish()
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\routing.py", line 268, in finish
    self.delegate.finish()
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\web.py", line 2399, in finish
    self.execute()
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\web.py", line 2421, in execute
    self.handler = self.handler_class(
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\websocket.py", line 220, in __init__
    super().__init__(application, request, **kwargs)
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\site-packages\tornado\web.py", line 214, in __init__
    super().__init__()
  File "C:\Users\myUsername\AppData\Local\Programs\Python\Python310\lib\typing.py", line 1422, in _no_init_or_replace_init
    cls.__init__(self, *args, **kwargs)
TypeError: WebSocketHandler.__init__() missing 2 required positional arguments: 'application' and 'request'

Chrome 开发者选项卡错误:

main.754d974e.js:19 WebSocket connection to 'ws://localhost:8501/\_stcore/stream' failed:
connectToWebSocket @ main.754d974e.js:19

WebsocketConnection WebSocket onerror
a @ mainl.754d974e.js:10

我使用的是Python 3.10。 Streamlit 是使用 pip 全新安装的,我也更新了它。

我在我的机器上运行 WLS Ubuntu(Linux 子系统),但我认为这不应该相关,因为 Python 安装在 Windows 上,并且我使用的所有命令和浏览器都在我的主 Windows 系统上。

我尝试关闭诺顿防病毒软件。我尝试关闭所有 Chrome 扩展,并在 Edge 中尝试相同的操作。我尝试创建一个Python虚拟环境。 我尝试以管理员身份运行命令提示符。

我确实用谷歌搜索了错误消息,这就是我找到我提到的已经尝试过的解决方案列表的方法。许多建议与编写自定义代码有关,但我只是执行 Streamlit 的内置“hello world”功能,没有任何自定义工作。我不明白 TLS 是如何造成的,因为我没有使用 https 在浏览器中进行连接。我发现的最接近我的错误的是下面的内容,但它不会导致解决:github.com/streamlit/streamlit/issues/9140

我觉得这是某种基本的环境设置问题,因为它是streamlit中内置的hello world函数。

以下是我创建和设置虚拟环境的方法:

python -m venv strl_venv
strl_venv\Scripts\activate.bat
pip install streamlit
python -m streamlit hello

这并没有解决问题。

python websocket streamlit
1个回答
0
投票

我重新安装了 python 3.13 和软件,它可以工作了。任何在 3.10 中不起作用的东西在 3.13 中都可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.