利用Pyinstaller打包streamlit为exe

本文参考了其他几位博主的做法并加上了一部分自己搜到的东西,完成了将引用第三方streamlit库的项目打包成exe,并且为应用添加了自定义图标。

环境:windows11、conda 24.3.0、streamlit 1.37.1、streamlit-card 1.0.2、pyinstaller 5.8.0

1.在项目根目录下创建一个hooks文件夹,在下面创建一个python文件(hook-streamlit.py)

from PyInstaller.utils.hooks import copy_metadata
 
datas = copy_metadata("streamlit") + copy_metadata("streamlit_card")

2.在项目根目录下创建run_app.py

import streamlit.web.cli as stcli
import os, sys


def resolve_path(path):
    resolved_path = os.path.abspath(os.path.join(os.getcwd(), path))
    return resolved_path


if __name__ == "__main__":
    sys.argv = [
        "streamlit",
        "run",
        
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用pyinstaller打包图片进exe的步骤如下: 1. 将需要打包的图片放在与.py文件同一目录下。 2. 在.py文件中使用以下代码将图片打包exe: ```python import sys from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QLabel if __name__ == '__main__': app = QApplication(sys.argv) label = QLabel() pixmap = QPixmap('image.png') label.setPixmap(pixmap) label.show() sys.exit(app.exec_()) ``` 其中,'image.png'为需要打包的图片文件名。 3. 使用pyinstaller打包exe文件: ```bash pyinstaller -F --add-data "image.png;." main.py ``` 其中,'main.py'为.py文件名,'image.png;.'表示将'image.png'文件打包exe文件,并将其放在exe文件所在目录下。 4. 打包完成后,在dist目录下会生成一个可执行文件,双击即可运行。图片已经被打包exe文件中,无需再次加载。 ### 回答2: PyInstaller是一个用于将Python脚本打包成独立应用程序的工具。它可以将代码文件和依赖的库文件打包成一个可执行文件,方便在没有安装Python环境的机器上运行Python程序。打包图片进exe文件也可以通过PyInstaller实现。下面是具体的步骤: 1.准备要打包Python脚本和图片文件。 2.在命令行窗口中输入以下命令,安装PyInstaller: pip install pyinstaller 3.在命令行窗口中进入要打包Python脚本所在的目录,输入以下命令打包exe文件: pyinstaller -F --add-data 'image.png;.' script.py -F表示生成单个可执行文件,--add-data表示添加外部数据文件,image.png是要添加的图片文件,"."表示在可执行文件所在目录下创建image.png文件。 4.等待打包完成,可执行文件会自动存放在dist目录下。 5.将打包好的可执行文件和所需图片文件一起传输给其他机器运行时,直接双击可执行文件即可。 需要注意的是,打包图片进exe文件时要注意文件路径的写法,windows路径使用分号";"隔开,Linux和macOS使用冒号":"隔开。同时还要确保图片文件与Python脚本文件在同一目录下。 ### 回答3: pyinstaller是一个Python打包工具,它能够将Python代码打包成一个独立的可执行文件,使用起来非常方便。 在打包图片进exe时,我们需要先将图片文件添加到Python代码中,可以使用Python内置的PIL库或第三方库opencv等实现。添加图片的方法一般为: ```python from PIL import Image # 打开图片 im = Image.open('image.png') # 读取图片的像素值并存储到一个数组中 pix = im.load() # 在数组中操作像素值 # ... # 保存处理后的图片 im.save('processed_image.png') ``` 这样,我们就可以将图片文件以像素的形式嵌入到Python代码中,再使用pyinstaller打包exe文件。打包时,我们需要在pyinstaller命令中加上"--add-data"参数,指定要打包的图片文件的位置,例如: ```bash pyinstaller --add-data "image.png;." myscript.py ``` 其中";."表示将图片文件打包exe文件的当前目录。 在程序运行时,我们需要使用Pillow等库将像素值重新转换为二进制数据,并将其转换为图片格式进行显示,例如: ```python from PIL import Image # 读取二进制数据并生成PIL图片对象 image_data = b'\x89\x50\x4e\x47...' im = Image.frombytes('RGB', (width, height), image_data) # 显示图片 im.show() ``` 总的来说,将图片打包exe程序可以使程序更加便携,无需外部文件依赖,适用于一些小型、独立的应用场景。但是,打包后的exe文件会变得更加臃肿,也不方便维护,需要权衡利弊后选取合适的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值