本文共 2082 字,大约阅读时间需要 6 分钟。
制成可执行文件:使用PyInstaller打包Python程序
在开发Python程序时,如何让用户无需安装Python解释器即可运行程序,是一个常见的需求。PyInstaller是一款强大的工具,能够将Python程序和其依赖打包为可执行文件,适用于Windows、Mac OS X和Linux系统。以下是使用PyInstaller在Windows系统中制作可执行文件的详细步骤。
安装PyInstaller
首先,我们需要安装PyInstaller。可以通过以下命令在命令提示符中执行:
pip install pyinstaller
创建打包示例程序
假设我们需要开发一个允许用户输入数学运算公式并进行计算的程序。创建一个名为 byhy.py 的文件,内容如下:
welcome = ''' ######################################## # # # 白月黑羽 PyInstaller 演示程序 # # # ########################################'''print(welcome)while True: exp = input('\n\n请输入一个数学运算式 [输入quit退出]:') if exp == 'quit': break try: result = eval(exp) except: print('\n!!无效的运算式') continue print(f'结果为: {result}') 制作可执行文件
在命令提示符中,进入包含 byhy.py 的目录,执行以下命令:
pyinstaller byhy.py --workpath d:\pybuild --distpath d:\pybuild\dist
参数说明:
--workpath d:\pybuild:指定制作过程中临时文件的存放目录。--distpath d:\pybuild\dist:指定最终可执行文件存放的目录。
执行完成后,进入 d:\pybuild\dist 文件夹,会发现一个名为 byhy 的子目录,包含 byhy.exe 等文件。
优化打包过程:单独存放库文件
为了方便用户使用,可以将库文件单独存放在一个目录中。创建一个名为 runtimehook1.py 的文件,其内容如下:
import sysimport oscurrent_dir = os.path.dirname(sys.argv[0])lib_dir = os.path.join(current_dir, "lib")print(current_dir)sys.path.append(lib_dir)os.environ['path'] += ';./lib'
在打包命令中添加 --runtime-hook="runtimehook1.py" 参数:
pyinstaller byhy.py --workpath d:\pybuild --distpath d:\pybuild\dist --runtime-hook="runtimehook1.py"
这样可以将库文件存放到 byhy 目录下的 lib 文件夹中,打包后的文件夹会更整洁。
图形界面程序打包
如果开发的是图形界面程序,可以使用 --noconsole 参数移除命令行控制台:
pyinstaller guitool.py --noconsole --workpath d:\pybuild --distpath d:\pybuild\dist
应用程序图标
为了给程序添加图标,可以使用 --icon 参数指定 logo.ico 文件:
pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml --icon="logo.ico"
确保 logo.ico 是有效的 ICO 文件。如果需要将 PNG 转换为 ICO,可以使用在线工具如 Zamzar 或 EasyIcon。
动态导入的库
如果程序运行时出现导入错误,例如 ImportError: could not import module 'PySide2.QtXml',可以使用 --hidden-import 参数手动指定动态导入的库:
pyinstaller httpclient.py --hidden-import PySide2.QtXml
通过以上方法,我们可以轻松打包Python程序为可执行文件,方便用户直接运行,无需安装Python解释器。PyInstaller 提供了丰富的选项,满足不同场景下的需求。
发表评论
最新留言
关于作者