首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Python脚本中运行Streamlit应用程序?

如何从Python脚本中运行Streamlit应用程序?
EN

Stack Overflow用户
提问于 2020-07-07 01:00:17
回答 2查看 7.5K关注 0票数 9

有没有办法运行这个命令streamlit run APP_NAME.py在python脚本中,这可能类似于:

代码语言:javascript
复制
import streamlit
streamlit.run("APP_NAME.py")

因为我正在处理的项目需要跨平台(和打包),所以我不能安全地依赖于对os.system(...)

或者subprocess。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-07 20:22:48

希望这对其他人也适用:我在python/conda bin中查看了实际的streamlit文件,它有以下几行:

代码语言:javascript
复制
import re
import sys
from streamlit.cli import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

从这里,您可以看到正在运行streamlit run APP_NAME.py在命令行中与(在python中)相同:

代码语言:javascript
复制
import sys
from streamlit import cli as stcli

if __name__ == '__main__':
    sys.argv = ["streamlit", "run", "APP_NAME.py"]
    sys.exit(stcli.main())

所以我把它放到另一个脚本中,然后运行这个脚本来运行python中的原始应用程序,它似乎起作用了。我不确定这个答案是如何跨平台的,因为它仍然在某种程度上依赖于命令行参数。

票数 11
EN

Stack Overflow用户

发布于 2021-02-13 17:55:47

您可以在python中运行您的脚本,如下所示python my_script.py

代码语言:javascript
复制
import sys
from streamlit import cli as stcli
import streamlit
    
def main():
# Your streamlit code

if __name__ == '__main__':
    if streamlit._is_running_with_streamlit:
        main()
    else:
        sys.argv = ["streamlit", "run", sys.argv[0]]
        sys.exit(stcli.main())
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62760929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档