将 Streamlit 应用程序转换为 pyinstaller 可执行文件

Lar*_*rsq 5 python pyinstaller streamlit

我正在构建一个应用程序streamlit,由于多种原因,该应用程序无法托管在服务器上。最受阻碍的原因是它也应该在没有互联网接入的情况下工作。因此,我想将我的应用程序转换为某种可执行文件,用户可以在自己的笔记本电脑上运行,并且该应用程序托管在本地主机上。

我有以下代码:

import streamlit.cli as stcli
import sys

def streamlit_run():
    sys.argv = ["streamlit", "run", "main.py", "--global.developmentMode=false"]
    sys.exit(stcli.main())


if __name__ == '__main__':
    streamlit_run()
Run Code Online (Sandbox Code Playgroud)

main.py现在是一个简单的 hello-world 应用程序。如果我跑

python wrapper.py
Run Code Online (Sandbox Code Playgroud)

在我的命令行中,应用程序在本地主机上运行。我使用pyinstaller运行将其转换为可执行文件

pyinstaller --onefile script.py
Run Code Online (Sandbox Code Playgroud)

并创建一个可执行文件。然而,如果我运行这个可执行文件,什么也不会发生:我只看到一瞬间的黑屏,仅此而已。对我如何解决这个问题有任何帮助吗?任何其他让客户使用该应用程序而不将其托管在服务器上的解决方案也将受到赞赏!

版本: python==3.9 streamlit==0.73.0 pyinstaller==4.1