工作中遇到要将做好的项目打包成应用程序,放在一个裸环境下运行,这就要求将项目相关的第三方库或者包打包,使得应用程序在脱离原依赖环境下,可以直接运行。这里记录一下使用spec文件打包的过程。
使用pyinstaller 单个文件打包
# 首先安装pyinstaller
pip install pyinstaller
# 执行命名 即可完成打包,生成文件名.exe程序
pyinstaller -F 文件名.py
使用pyinstaller 多个文件打包
这里先看下项目文件结构:文章来源:https://www.toymoban.com/news/detail-568141.html
# pyinstaller安装方法同上
# 假设以测试主程序 为打包程序时候的主程序,其他py文件为可引用资源
# 执行如下命令 生成spec文件
pyi-makespec -F PaserAdapter_Test.py
编辑PaserAdapter_Test.spec文件
# spec文件格式如下:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['ParseAdapter_Test.py','ParseAdapter.py'], # 程序中的py文件
pathex=[],
binaries=[],
datas=[('templates','.'),('ParseAdapter.conf','.')], # 资源文件,以元组形式组成列表
hiddenimports=[],
hookspath=[],
hooksconfig={},
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,
[],
exclude_binaries=True,
name='ParseAdapter_Test',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='ParseAdapter_Test',
)
执行打包命令(可指定输出程序存放的路径)
假设使用默认路径
# 使用默认输出路径,直接执行命令
pyinstaller PaserAdapter_Test.spec
指定程序存放路径
# 指定文件输出到文件夹parseadapter下,且exe文件存在dist下,其他存在build下
pyinstaller PaserAdapter_Test.spec
如果在windows系统打包,则dist下会有对应的.exe程序,此时可脱离其他源文件独自执行exe文件。
更全面的知识可以参考这篇文章,很不错,学习到很多文章来源地址https://www.toymoban.com/news/detail-568141.html
到了这里,关于python pyinstaller spec文件 打包多个python文件为exe应用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!