1、简单版本
import os
if __name__ == "__main__":
print('linux dabao to exe ......................')
打包命令如下,
pyinstaller -F websockets_dabao.py
打包成功:
运行结果:
2、增加第三方库
import os
import websockets
if __name__ == "__main__":
print('linux dabao to exe ......................')
打包没有报错
执行确有问题
--------------以上python项目已在windows上验证了,成功,没有任何报错信息-------------
配置一:spec文件配置(hiddenimports)
spec文件中主要包含4个class: Analysis, PYZ, EXE和COLLECT.
Analysis以py文件为输入,它会分析py文件的依赖模块,并生成相应的信息
PYZ是一个.pyz的压缩包,包含程序运行需要的所有依赖
EXE根据上面两项生成
COLLECT生成其他部分的输出文件夹,COLLECT也可以没有
为了进行自定义配置的打包,首先需要编写打包的配置文件.spec文件。当使用pyinstaller -d xxx.py时候会生成默认的xxx.spec文件进行默认的打包配置。通过配置spec脚本,并执行pyinstaller -d xxx.spec完成自定义的打包。
首先给出举例python项目的spec文件配置,增加 hiddenimports
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['websockets_dabao.py'],
pathex=['/home/jffc/work/project/web_demo'],
binaries=[],
datas=[],
hiddenimports=['websockets', 'websockets.legacy', 'websockets.legacy.auth', 'websockets.client', 'websockets.server'],
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,
cip