出于教育用途,我正在尝试在 Google Colab Jupyter 笔记本中运行 Streamlit 应用程序。*
你可以在这里运行我的设置。这在几周前一直有效。
现在,应用程序只有大约 5% 的时间正确加载。其他 95% 我收到这样的错误(类似于这个问题):
无法完成隧道连接
与 67567754f01f.ngrok.io 的连接已成功通过隧道连接到您的 ngrok 客户端,但客户端未能建立与本地地址 localhost:80 的连接。
确保 Web 服务正在 localhost:80 上运行并且它是有效地址。
遇到的错误是:dial tcp 127.0.0.1:80: connect: connection denied
有什么修复建议吗?
*动机:我正在使用 Colab,以便我可以共享文件并让学生完全在浏览器中查看和编辑应用程序,而无需安装。如果有更好的方法来实现这一点,欢迎挑战框架!
版本:
- 蟒蛇 3.6.9
- streamlit 0.71.0(也尝试了几个以前的版本)
- pyngrok 5.0.0(也试过 4.2.2。这是一个新的主要版本 - 相关吗?)
- 火狐 82.0.3
完整的代码和输出:
代码:
!pip -q install streamlit
!pip -q install pyngrok
输出:
Building wheel for watchdog (setup.py) … done
Building wheel for blinker (setup.py) … done
Building wheel for pathtools (setup.py) … done
ERROR: requests 2.23.0 has requirement urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1, but you’ll have urllib3 1.26.2 which is incompatible.
ERROR: google-colab 1.0.0 has requirement ipykernel~=4.10, but you’ll have ipykernel 5.3.4 which is incompatible.
ERROR: datascience 0.10.6 has requirement folium==0.2.1, but you’ll have folium 0.8.3 which is incompatible.
Building wheel for pyngrok (setup.py) … done
代码:
%%writefile app.py
import streamlit as st
st.title(“hi”)
输出:
Writing app.py
代码:
from pyngrok import ngrok
public_url = ngrok.connect(port=‘80’)
print (public_url)
!streamlit run app.py >/dev/null
输出:
NgrokTunnel: “http://67567754f01f.ngrok.io” -> “localhost:80”
/usr/local/lib/python3.6/dist-packages/requests/init.py:91: RequestsDependencyWarning: urllib3 (1.26.2) or chardet (3.0.4) doesn’t match a supported version!
RequestsDependencyWarning)
t=2020-11-19T18:42:24+0000 lvl=warn msg=“failed to open private leg” id=61fef1ba5d31 privaddr=localhost:80 err=“dial tcp 127.0.0.1:80: connect: connection refused”
t=2020-11-19T18:42:24+0000 lvl=warn msg=“failed to open private leg” id=8da0b078aaa7 privaddr=localhost:80 err=“dial tcp 127.0.0.1:80: connect: connection refused”