记录一次Pyinstaller 打包

在打包Selenium代码后,遇到客户电脑因缺少Node.js环境导致无法运行的情况。解决办法是确保在客户计算机上安装Node.js以及相关的依赖包,从而保证代码能够正常执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给客户打包一份Selenium代码,里面涉及到了Js环境,那么打包之后发现客户电脑无法运行。
解决方案:
在客户电脑上安装nodejs以及对应的包即可

### 使用 PyInstaller 打包包含 PaddlePaddle 的 Python 项目 #### 安装依赖项 为了确保项目的依赖关系被正确记录,在打包之前应该先安装 `pipreqs` 并生成 `requirements.txt` 文件。 ```bash pip install pipreqs pipreqs ./ --encoding=utf-8 ``` 这一步骤能够帮助捕获所有必要的库文件,从而减少因缺少依赖而引起的错误[^1]。 #### 修改 PaddlePaddle 中的代码逻辑 针对 PaddlePaddle 特定版本中存在的 pyinstaller 不兼容问题,可以考虑修改 `paddle/dataset/image.py` 文件中的动态导入部分。具体来说: 当检测到 Python 3 环境时,原生实现尝试通过子进程来加载 OpenCV 库,这种方式可能会导致打包后的应用程序无法正常工作。建议直接静态引入 OpenCV 而不是采用复杂的条件判断语句: ```python try: import cv2 except ImportError: cv2 = None ``` 这样的改动简化了模块间的相互作用模式,有助于提高最终可执行文件的成功率和稳定性[^3]。 #### 创建部署脚本 对于不同操作系统平台下的应用分发需求,可以通过编写 shell 或 batch 脚本来自动化整个构建过程。例如 Linux 下的 deploy.sh 可能看起来像这样: ```bash #!/bin/bash # 清理旧版编译残留物 rm -rf dist/ build/ # 构建单个独立 exe 文件 pyinstaller --onefile main.py # 复制其他资源文件至目标目录 cp -r assets/* dist/ echo "Build completed!" ``` 而在 Windows 上则对应有 deploy.bat : ```batch @ECHO OFF :: 删除之前的构建产物 RMDIR /S /Q build RMDIR /S /Q dist DEL *.spec :: 开始新一次构建流程 pyinstaller --onefile main.py XCOPY /E/Y .\assets\*.* .\dist\ ECHO Build finished. PAUSE ``` 这些脚本不仅实现了跨操作系统的支持,还包含了清理历史数据以及复制额外所需资源的功能,使得发布的准备工作更加简便高效[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值