将py打包为exe文件需要依赖pyinstaller
首先介绍以下pyinstaller的命令
-F:打包后只生成单个exe格式文件;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。
一、将单个py程序打包为exe文件
1.打开cmd输入这段代码安装pyinstaller
pip install pyinstaller
安装完成之后到需要打包的py文件夹下运行cmd
然后在cmd窗口输入pyinstaller 和需要打包的.py文件名,等待自动打包就行(要注意的是在到含有需要打包的文件的文件夹下运行pyinstaller,可以在cmd使用cd命令也可以,在需要打包的py文件夹下运行cmd)
打包完成会在当前目录生成一个disk文件夹
里面就是打包好的文件
这样打包文件和需要的库是分开的,不方便
建议使用
pyinstaller -F 文件.py
生成的文件在dist里面双击就能运行
二、多py文件打包
在需要打包的文件目录下运行cmd,输入以下命令来生成.spec文件
pyi-makespec 主文件.py
运行完成目录下会出现一个.spec文件
配置.spec文件
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['main.py'
'E:\Folder\python\chaoxing-main\chaoxing-main\api\__init__.py' #此处填写.py文件
'E:\Folder\python\chaoxing-main\chaoxing-main\api\chaoxing.py' #此处填写.py文件,自己的文件有几个就写几个,如果当前在目录下可以直接写文件名,如果在其他文件夹里,填写文件目录加文件名
'E:\Folder\python\chaoxing-main\chaoxing-main\utils\__init__.py'
'E:\Folder\python\chaoxing-main\chaoxing-main\utils\functions.py'],
pathex=['E:\Folder\python\chaoxing-main\chaoxing-main'], #此列表为项目路径
binaries=[],
datas=[( , ),( , )], #此处填写非py文件,多个文件用(),分割第一个参数是文件路径,第二个是打包后所在的路径
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='main', #程序exe的名称
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True, # 打包的时候进行压缩,False表示不压缩
console=True, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='icon.ico', #程序图标,要绝对路径
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='main', #程序文件夹名称
)
配置好之后
在当前目录cmd中执行命令
pyinstaller xxxx.spec
生成的文件在disk目录下,双击运行即可