1.首先 安装包 pip install pyinstaller
-
在终端cd到你的程序所在根目录
-
先跑一遍:
pyinstaller -F --noupx main_A.py
(这里main_A.py是我要包装的主程序,加入–noupx可以解决解决运行生成的exe文件时的一些报错,例如:vcruntime140.dll没有被指定在Windows上运行(2)) 生成.spec文件 -
如果想要加入其他的资源,如图片等,需要将程序里的资源路径进行以下操作:
import os # 利用os模块方便定义完整路径
import sys # 操作系统交互模块
def get_resource_path(relative_path): # 利用此函数实现资源路径的定位
if getattr(sys, "frozen", False):
base_path = sys._MEIPASS # 获取临时资源
else:
base_path = os.path.abspath(".") # 获取当前路径
return os.path.join(base_path, relative_path) # 绝对路径
IMAGES_PATH_1 = get_resource_path(os.path.join("data", "picture_1"))
IMAGES_PATH_2 = get_resource_path(os.path.join("data", "piature_2"))
5.然后将你的.spec文件做如下修改:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main_A.py'],
pathex=['C:\\Users\\lx\\Desktop\\A1_data_analysis'],
binaries=[],
datas=[("data", "data")], #这里的datas内存放的是原路径与现路径
hiddenimports=[],
hookspath=[],
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,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main_A',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=False,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
6.最后再在原文件目录下执行
pyinstaller -F --noupx main_A.spec
然后运行dist目录下的exe文件就ok了。