python开发的软件转换为.exe可执行文件

将 Python 开发的软件从 .py 文件转换成 .exe 文件,可以通过使用一些工具来完成,最常用的工具是 PyInstaller。它可以将 Python 脚本打包成独立的可执行文件(.exe),使得用户无需安装 Python 环境也能运行你的程序。
1、.py文件,这个文件是一个完整的软件

2、打开命令行,安装pyinstall库

pip install pyinstaller

3、命令行中,导航到.py文件所在目录下

例:

4、pyinstaller xxx.py,替换xxx.py为你的python脚本的文件名

pyinstaller xxx.py

例:

(附另一种打包方式:pyinstaller --onefile xxx.py。--onefile 参数可以将所有依赖文件打包成一个 .exe 文件。如果不加 --onefile,会生成一个文件夹,里面包含多个文件和 .exe 文件。)
pyInstaller 会自动分析你的 Python 脚本,检查它所依赖的库,并将所有这些依赖打包到 .exe 文件中。这个过程可能需要几分钟,具体时间取决于你程序的复杂性和依赖库的数量。

5、等待运行结束,运行产生如下文件:

6、打开dist文件夹,打开xxx文件夹,内含一个可执行文件

例:

双击该.exe文件即可运行
(运行时,如果程序有图形界面,它就像一个普通的 Windows 程序一样运行。如果是命令行程序,会在命令行窗口中运行。)
 

常用参数:
1. --onefile
将所有的依赖文件和程序代码打包成一个单独的 .exe 文件。默认情况下,PyInstaller 会生成一个文件夹,其中包含 .exe 文件和所有依赖库,使用 --onefile 可以将它们打包成一个单独的文件。

2. --noconsole 或 --windowed
适用于图形界面程序,防止程序在运行时打开命令行窗口。常用于使用 Tkinter、PyQt 等图形库的程序。

3. --icon=<icon_path>
为生成的 .exe 文件指定一个图标。图标文件必须是 .ico 格式。

4. --add-data=<source;destination>
将外部数据文件(如配置文件、图片、数据库文件等)包含进打包的程序中。

例如,打包时包括一个图片文件:

pyinstaller --add-data="data/image.png;data" xxxx.py

这个参数会将 image.png 文件放到 data 文件夹中,xxxx.py 中可以通过相对路径来访问它。
5. --add-binary=<source;destination>
类似于 --add-data,但用于添加二进制文件(例如 .dll 文件、.so 文件等)。

6. --clean
在每次打包之前,删除旧的缓存和临时文件,确保生成干净的打包。

7. --distpath=<path>
指定 .exe 文件输出目录。默认情况下,PyInstaller 会将生成的 .exe 文件放到 dist/ 目录下。

8. --workpath=<path>
指定临时工作目录,PyInstaller 会将一些临时文件存放在这个目录中(如临时解压文件、编译缓存等)。

9. --specpath=<path>
指定 .spec 文件的输出目录。.spec 文件是 PyInstaller 打包过程中的配置文件,可以自定义打包细节。如果你需要修改默认的打包行为,可以编辑 .spec 文件。

10. --upx-dir=<directory>
如果你想在打包时使用 UPX(一个可执行文件压缩工具)来压缩生成的 .exe 文件,可以使用这个参数指定 UPX 所在目录。

11. --debug
启用调试模式,会在执行过程中输出详细的调试信息。如果你的程序在打包过程中有问题,可以通过此参数获取更多信息。

12. --no-upx
禁用 UPX 压缩。如果你希望生成的 .exe 文件不被压缩,可以使用这个参数。

13. --strip
去除可执行文件中的调试信息和符号,减小文件体积。

14. --hidden-import=<module>
有时 PyInstaller 无法自动识别某些动态导入的模块(例如通过 importlib 导入的模块),可以使用此参数手动指定这些模块。

15. --runtime-hook=<hook_file>
指定运行时钩子文件(.py 文件),它将在打包程序启动时执行。可以用来处理特殊的运行时需求。

16. --no-patchelf
避免使用 patchelf(一个在 Linux 上修改 ELF 文件的工具),用于解决一些特定平台上的兼容性问题。

17. --clean
在每次构建时清理旧的缓存和临时文件。这可以防止一些潜在的错误,特别是在对 .spec 文件进行修改后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃橘子的橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值