python使用pyinstaller打包成exe

本文介绍了如何使用pyinstaller将Python代码打包成exe可执行文件。首先通过pip安装pyinstaller,然后在代码所在目录的cmd窗口运行打包命令。打包完成后,exe文件位于dist文件夹内。此外,还提及了如何关闭打包后的黑框、更改默认图标以及程序名称的修改方法。

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

使用pip安装pyinstaller

pip install pyinstaller

经典打包。

  • 点开你的python代码所在的文件。例如,你有如下文件夹
    在这里插入图片描述
  • 在该路径打开cmd。例如,在文件地址栏输入cmd后回车
    在这里插入图片描述
  • 在弹出的cmd中,输入以下命令进行打包。
pyinstaller -F test.py

在这里插入图片描述

  • 打包完成后,会出现三个新的文件夹。其中,在dist文件夹内,就是我们所需的exe可执行文件。
    在这里插入图片描述

其他参数

  • 关闭黑框框
pyinstaller -F -w test.py
<think>好的,用户想将使用Ursina库的Python项目通过PyInstaller打包可执行文件。首先,我需要回忆之前的相关引用内容,特别是引用[2]、[3]、[4],这些可能提供有用的信息。 根据引用[4],用户提到需要添加特定的参数,比如--add-data和--collect-all来处理依赖项。比如,他们用了--add-data "panda3d/;panda3d"以及--collect-all ursina和--collect-all pygame。这可能是因为Ursina依赖Panda3D和PyGame,所以需要将这些库的数据文件一起打包进去。 另外,引用[3]提到手动添加hook文件的情况,比如处理pyppeteer_stealth这样的模块。虽然Ursina可能不需要这个特定模块,但如果有其他类似依赖,可能需要自定义hook。不过,用户的问题主要围绕Ursina,所以可能不需要这个步骤,但需要确认是否有其他隐藏依赖。 引用[2]指出Panda3D的路径问题,可能需要确保PyInstaller能找到这些路径。不过根据引用[4]的示例,使用--add-data可能已经解决了这个问题。 用户可能遇到的常见问题包括:打包后的exe找不到资源文件、依赖库没有被正确包含、版本兼容性问题。比如引用[1]提到PyInstaller版本与Python版本的冲突,所以需要确认用户使用PyInstaller版本是否兼容他们的Python版本。例如,如果用户用Python 3.8+,可能需要PyInstaller 4.1以上,但根据引用[1]的例子,用户可能需要降级到3.4版本,但这里可能需要具体情况具体分析。 接下来,我需要整理打包步骤:安装正确版本的PyInstaller使用特定的命令参数包含Ursina、Panda3D等依赖,处理资源文件,可能的hook文件添加,以及排除常见问题如路径错误或版本不兼容。 还需要考虑用户可能的错误场景,比如打包exe运行时崩溃,如何调试,比如使用控制台查看错误信息,或者添加钩子确保所有模块被正确收集。 最后,生相关问题,帮助用户深入解决可能遇到的后续问题,比如性能优化、添加图标、处理特定模块的hook等。</think>### 分步解决方案:将Ursina项目打包EXE文件 #### 1. **环境准备** - 确认Python版本与PyInstaller兼容 Ursina引擎依赖Python 3.7+,推荐使用Python 3.7-3.9以避免高版本兼容性问题[^1]。 PyInstaller版本建议选择4.5以下(如3.6)或最新稳定版(需验证兼容性)。 #### 2. **安装依赖** ```bash pip install ursina pyinstaller ``` 若存在第三方库依赖(如`panda3d`、`pygame`),需一并安装。 #### 3. **编写打包命令** 核心命令需包含以下参数: ```bash pyinstaller --add-data "panda3d;ursina/libs/panda3d" --collect-all ursina --collect-all pygame -w -i 图标路径 主程序.py ``` - `--add-data "panda3d;ursina/libs/panda3d"` 将Panda3D引擎资源文件从本地路径复制到打包目录[^4]。 - `--collect-all ursina` 强制包含Ursina引擎全部模块和资源文件。 - `-w` 隐藏控制台窗口(适用于图形化程序)。 - `-i 图标路径` 指定EXE文件图标。 #### 4. **处理特殊依赖** - **手动添加Hook文件** 若遇到`ModuleNotFoundError`,需在`PyInstaller/hooks`目录下创建对应hook文件。 例如包含`pyppeteer_stealth`模块时,需添加`hook-pyppeteer_stealth.py`[^3]: ```python from PyInstaller.utils.hooks import collect_data_files datas = collect_data_files("pyppeteer_stealth") ``` #### 5. **调试与验证** - 添加`--noconfirm`参数避免覆盖旧打包文件。 - 通过`-F`参数生单一EXE文件(但可能增大体积): ```bash pyinstaller -F 主程序.py ... ``` - 若运行失败,移除`-w`参数查看控制台报错信息。 #### 6. **完整示例命令** ```bash pyinstaller --add-data "C:/Python39/Lib/site-packages/panda3d/*;ursina/libs/panda3d" --collect-all ursina --collect-all pygame -w -i logo.ico main.py ``` --- ### 常见问题解决 1. **资源文件路径错误** 程序中需使用绝对路径或`application.asset_folder`加载资源: ```python from ursina import application texture_path = application.asset_folder / 'textures' ``` 2. **PyInstaller版本兼容性** 若报错`Module 'pywintypes' not found`,降级到PyInstaller 3.6或升级Python至3.7[^1]。 3. **OpenGL驱动缺失** 打包后程序需依赖系统OpenGL驱动,建议在目标机器安装最新显卡驱动。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值