python 打包成可执行程序踩坑总结

发布于 2024-03-02 05:21:03 字数 3094 浏览 24 评论 0

为了方便将开发的测试工具交付给测试人员使用,查阅资料得知 python 有以下几个打包工具。将使用过程与心得总结记录下来。

py2exe

py2exe 是一个将 python 脚本转换成 windows 上的可独立执行的可执行程序(*.exe)的工具。这样,你就可以不用装 python 和其他相关环境,而可以在 windows 系统上运行这个可执行程序。

用法

1、写一个用于发布程序的设置脚本例如 setup.py,如下。

#coding=utf-8
from distutils.core import setup
import sys
sys.path.append('./')
import py2exe

#this allows to run it with a simple double click.
# sys.argv.append('py2exe')

py2exe_options = {
"includes": ["sip"],
"dll_excludes": ["MSVCP90.dll"],
"compressed": 0,
"optimize": 2,
"ascii": 0
# "bundle_files": 1
}

setup(
name = 'TstLinkNew',
version = '1.1.8',
windows = [{"script":'TestLinkNew.py',"icon_resources":[(1,"testlinknew.ico")]}],
# zipfile = None,
options = {'py2exe': py2exe_options}
)

2、执行 python setup.py py2exe,执行成功后,会得到一个 build 文件夹和一个 dist 文件夹。其中,dist 文件夹,就是你得到的打包程序。
3、控制台程序使用 setup(console=[“helloworld.py”]) ,带 GUI 界面程序使用 setup(windows=[“helloworld.py”])
3、如果要把 python 编译的所有文件打包到一个 exe 中,就需要在 setup() 中设置 2 个参数:options 中的 bundle_files 和 zipfile。
4、其他一些打包参数,请查阅官方文档。

pyinstaller

pyinstaller 也是一个打包工具,它的用法相对 py2exe 比较简单,我比较常用到的是这个打包工具。

用法

1、项目所在目录打开 cmd 命令框,执行 pyinstaller 项目所在目录打开 cmd 命令框,执行 pyinstaller -F WinMain.py 命令,将会生成 dist 目录和 bulid 目录。
2、dist 目录存在有单个 WinMain.exe 程序,但是双击无法执行。因为我的项目存在的配置文件 config.ini,没有被打包进 WinMain.exe 中,所以程序无法运行。
3、编辑器打开 WinMain.spec 文件,在 datas 选项中添加 config.ini 文件,如下所示。

# -*- mode: python -*-

block_cipher = None


a = Analysis(['WinMain.py'],
pathex=['D:\\2018H2 自动化工作\\IgmpCli'],
binaries=[],
datas=[('D:\\2018H2 自动化工作\\IgmpCli\\config.ini','.')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='WinMain',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )

4、然后在 cmd 命令框中执行 pyinstaller -F WinMain.spec 命令,此时生成 WinMain.exe 已经打包了 config.ini 文件,双击 WinMain.exe 能够运行。
5、同理添加其他一些图标资源文件,也可以打包进 exe 中。

帮助信息

官方文档 请点击

py2app

Py2app 是一个在 MAC 系统下打包的可执行程序(*.app)的工具包。
因为我目前还未使用过此工具包,所以还未遇到坑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

囍孤女

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文