1、安装pyinstaller
pip install pyinstaller
2、使用pyinstaller生成spec打包配置文件,程序文件名称,getprocess.py
pyi-makespec getprocess.py
3、会自动在当前目录生成getprocess.spec文件
4、使用spec文件打包文件
pyinstaller.exe -F .getprocess.spec
5、-F 参数将程序打包成1个独立exe文件,打包后的文件在当前目录的dict目录内,只需要分发exe文件,如果不加-F参数,分发软件时需要连同资源文件一起分发。
6、打包软件时增加资源文件,需要修改getprocess.spec内容,res为资源目录
使用spec文件时,请提供一个列表,将文件描述为datas=
参数的值Analysis
。数据文件列表是元组列表。每个元组都有两个值,两个值都必须是字符串:
- 第一个字符串指定现在在此系统中的文件。
- 第二个指定在运行时包含文件的文件夹的名称。
7、参考:
#Pyinstaller如何将资源文件一起打包至exe中 #基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行#时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的#资源 #官方说明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation #测试案例功能描述,访问资源文件夹res/a.txt,并打印其内容。实现方法如下: #源码如下,比较简单,resource_path方法说明了如何使用sys._MEIPASS变量来访问临时文件夹中的资源 #coding:utf-8 import sys import os #生成资源文件目录访问路径 def resource_path(relative_path): if getattr(sys, 'frozen', False): #是否Bundle Resource base_path = sys._MEIPASS else: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) currentpath = resource_path("res") #这里可以直接访问资源文件目录