将py文件打包成exe

一、打包命令

pyinstaller -F Excel内容合并.py -p C:\Users\dell\PycharmProjects\LKM_Pro\venv\Lib\site-packages

-p 指定资源目录寻找依赖包
带有GUI的 -w参数可以屏蔽小黑框

pyinstaller -F 你的.py -p C:\Users\dell\PycharmProjects\LKM_Pro\venv\Lib\site-packages

若嫌弃自己打包的exe太大,可能是压进去很多没有依赖性的冗余文件,可用如下虚拟环境解决
建立虚拟环境
pipenv install
进入虚拟环境
pipenv shell
安装模块
pip install 小工具.py里面用到的模块
打包的模块也要安装
pip install pyinstaller
开始打包
pyinstaller -F C:\Users\dell\PycharmProjects\LKM_Pro\图片切两半.py

二、若项目依赖一些txt或图片文件,打包单个exe打包不进去 可以:

1.将图片路径的构造方式有相对路径变为构造绝对路径,因为在执行exe时资源文件会被解压到C:\Users\xxx\AppData\Local\Temp_MEI33282这样的一个名称随机的文件夹
声明方法调度如下:
def resource_path(relative):
if hasattr(sys, "_MEIPASS"):
absolute_path = os.path.join(sys._MEIPASS, relative)
else:
absolute_path = os.path.join(relative)
return absolute_path

pygame.init()
screen = pygame.display.set_mode((400,300))

bg_image = pygame.image.load(resource_path('bg.jpeg'))
2.然后修改:他的.spec里的:
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[('bg.jpeg','D:\mycode\bg.jpeg','DATA')],
name='game',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )

3.在a.datas下方的数组里填上要打包的图片,如果是两个图片,那么写成
[('bg.jpeg','D:\mycode\bg.jpeg','DATA'),('bg2.jpeg','D:\mycode\bg2.jpeg','DATA')]

4.然后把console=True这一行,改成console=Flase后再用pyinstaller 他的.spec打包就完美结束了

你可能感兴趣的:(将py文件打包成exe)