首页 > 编程问答 >使用 os.system() 命令打开 Streamlit

使用 os.system() 命令打开 Streamlit

时间:2024-07-25 14:19:30浏览次数:9  
标签:python operating-system streamlit

我正在工作中在 Streamlit 中创建一个应用程序。因为大多数人对编程一无所知(包括如何启动 Streamlit),所以我想用启动 Streamlit 的代码创建一个可执行文件。

这是我的代码:

import os

cmd = 'streamlit run main.py'

os.system(cmd)

接下来我使用 pyinstaller 来更改它到一个exe文件中。但是,exe 文件打开并关闭,并且 Streamlit 未打开。我该如何解决这个问题?我还尝试使用 main.py 的绝对文件路径 - 也不起作用


遇到了一个常见问题! os.system() 的问题在于它会启动一个新进程,并且的 Python 脚本不会等待 Streamlit 启动。因此,该窗口会短暂闪烁,然后关闭。

可以按照以下步骤操作来解决此问题:

1. 使用 subprocess.Popen

subprocess.Popen 允许启动一个进程并与其进行交互。重要的是使用 shell=True 来确保正确解释命令:

import subprocess

cmd = 'streamlit run main.py'

process = subprocess.Popen(cmd, shell=True)

2. 使用 Streamlit 内置功能

从 Streamlit 1.8.0 版本开始,可以使用 streamlit.cli 模块直接从的 Python 脚本运行 Streamlit 应用程序。这提供了一种更集成、更可靠的方式来启动的应用程序。

import streamlit.cli

if __name__ == '__main__':
    streamlit.cli.main(['streamlit', 'run', 'main.py'])

创建可执行文件

完成上述步骤后,可以使用 PyInstaller 创建可执行文件:

pyinstaller --onefile your_script.py

这将创建一个独立的可执行文件,当运行时,将启动的 Streamlit 应用程序。

其他注意事项:

  • 依赖项: 确保的 Streamlit 应用程序所需的所有依赖项都包含在 PyInstaller 可执行文件中。可以使用 --hidden-import 选项或创建一个 requirements.txt 文件来实现此目的。
  • 工作目录: 如果的 Streamlit 应用程序依赖于相对于其执行位置的特定文件或目录,请确保在运行 subprocess.Popen streamlit.cli.main 之前设置正确的工作目录。

通过这些调整,应该能够创建一个可执行文件,该文件可以为的同事轻松启动 Streamlit 应用程序,而无需他们担心任何技术细节!

标签:python,operating-system,streamlit
From: 78788366

相关文章

  • Python:__add__ 和 +,浮点数和整数的不同行为
    当将整数值添加到浮点值时,我意识到如果在浮点上调用该方法可以正常工作,例如:__add__但如果在整数上调用则不行:>>>n=2.0>>>m=1>>>n.__add__(m)3.0起初我认为|||只是对>>>m.__add__(n)NotImplemented和__add__类型的实现方式不同(例如f......
  • python中scrapy爬取数据get()与getall()区别
    在使用scrapy进行爬取数据的时候,有些时候需要爬取的是一段文本,或者一个div里面有很多内容,这时候我们就要使用到get()或者getall()来获取数据: get():是获取的满足条件的第一个数据。getall():是获取的满足条件的所有数据。scrapyget()getall()原理在Scrapy中,get(......
  • python—NumPy基础(3)
    文章目录算术函数算术函数的使用算术函数中out参数的使用mod()函数的使用统计函数power()函数的使用median()函数的使用mean()函数的使用函数的使用其他常用函数tile()和repeat()函数的使用roll()函数的使用resize()函数的使用replace()和put()函数的使savetxt()和lo......
  • Python爬虫:代理ip电商数据实战
    引言:数据访问管理引发的烦恼作为一名Python博主,爬虫技能对于获取和分析数据至关重要,经常爬一下,有益身心健康嘛。爬虫技术对很多人来说,不仅仅是一种工具,更像是一种艺术,帮助我们从互联网中,捕捉到有价值的信息。我经常就会用爬虫来爬取一些所需的数据,用来进行数据分析和模型训......
  • python科学计算:加速库numba —— 安装和试用
    安装(anaconda环境下)condainstallnumbaDemo代码:fromnumbaimportjitfromnumpyimportarangeimportnumpyimporttime@jitdefsum2d(arr):M,N=arr.shaperesult=0.0foriinrange(M):forjinrange(N):result+=a......
  • Python - Selenium抓取淘宝直播间评论(可使用无头模式)
    Python-Selenium抓取淘宝直播间评论(可使用无头模式)下面介绍如何使用python中的selenium简单抓取淘宝直播间实时评论。友情提醒,仅供学习交流使用,请勿用于非法用途!一、创建python项目1.在目录下新建main.py和venv虚拟环境:创建虚拟环境:python-mvenvvenv激活虚拟环......
  • 需要帮助来提取此 XML 节点 - Python 中的 Excel 连接字符串
    我有一个Python程序,打开Excel(XLSX)文件,并尝试查找<connection>节点。这是connections.xml文件中的完整XML。<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><connectionsxmlns="http://schemas.op......
  • 【python】Python中采集Prometheus数据,进行数据分析和可视化展示
    ✨✨欢迎大家来到景天科技苑✨✨......
  • 使用python3拼接rgb.txt与depth.txt为associate.txt(适用于GCNV2_SLAM中TUM数据集的运
    这里以GCNV2_SLAM中TUM数据集的运行为例子:安装gnv2_slam可以参考:GCNv2_SLAM-CPU详细安装教程(ubuntu18.04)-CSDN博客首先下载数据集ComputerVisionGroup-DatasetDownload下载后通过该命令解压:tar-xvfrgbd_dataset_freiburg1_desk.tgz打开后,你可以发现:在该数据集......
  • 【Python】到底什么是字符串格式化?
    字符串格式化的目的:在字符串中动态地插入数据或表达式。字符串格式化的对象:要插入到字符串中的数据。在详细解释之前,先引入第一种字符串格式化的方法name=input('请输入你的名字:')gender=input('请输入你的性别:')age=input('请输入你的年龄:')print(f'你的名字是{......