有没有办法运行这个命令streamlit run APP_NAME.py在python脚本中,这可能类似于:
import streamlit
streamlit.run("APP_NAME.py")
因为我正在处理的项目需要跨平台(和打包),所以我不能安全地依赖于对os.system(...)
或者subprocess。
发布于 2020-07-07 20:22:48
希望这对其他人也适用:我在python/conda bin中查看了实际的streamlit文件,它有以下几行:
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中)相同:
import sys
from streamlit import cli as stcli
if __name__ == '__main__':
sys.argv = ["streamlit", "run", "APP_NAME.py"]
sys.exit(stcli.main())
所以我把它放到另一个脚本中,然后运行这个脚本来运行python中的原始应用程序,它似乎起作用了。我不确定这个答案是如何跨平台的,因为它仍然在某种程度上依赖于命令行参数。
发布于 2021-02-13 17:55:47
您可以在python中运行您的脚本,如下所示python my_script.py
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())
https://stackoverflow.com/questions/62760929
复制相似问题