持续创作,加速成长!这是我参与「日新计划 10 月更文挑战」的第7天,点击检查活动详情
1 pyinstaller的装置与简略运用
1.1 pyinstaller的装置
1、装置方法一:运用pip装置
pip install pyinstaller
2、装置方法二:从pyinstaller官网下载源码装置(参阅)
- pyinstaller官网:http://www.pyinstaller.org/
下载源码后进行解压,然后履行:
python setup.py install
1.2 pyinstaller对单个py文件进行打包成exe文件
1、首先来看一下打包的程序目录:
2、test.py程序功用:运用tkinter
创立一个窗口,把images/zly.png
图片显现在窗口中。程序如下:
import cv2
import numpy as np
from PIL import Image, ImageTk
import tkinter as tk
window = tk.Tk()
window.title('demo')
window.geometry('600x400')
image = cv2.imread('images/zly.png')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = cv2.resize(image, (500, 200))
image_pil = Image.fromarray(np.uint8(image))
canvas = tk.Canvas(window, width=500, height=200, bg='green')
image_file = ImageTk.PhotoImage(image=image_pil)
# 报错:AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo' 参数关键字是image,我写成Image所以报该过错,找半天!
image = canvas.create_image(500/2, 0, anchor='n', image=image_file) # 图片的锚定点anchor(这儿就是值图画的上边缘的中间方位),放到画布的(x=0, y=0)的方位
canvas.pack(side='top')
window.mainloop()
3、pyinstaller -F对程序进行打包
pyinstaller -F test.py
打包后程序目录如下:
- xxx.spec:是记载打包的参数文件(打包好之后能够删去)
- build目录:打包过程中生成的文件(打包好之后能够删去)
- dist目录:打包生成的exe可履行文件存储在该目录下
4、这样就能够把该履行文件拷贝给其他人运用了,而其他人不需求再装置python编译器以及程序相关的python依靠库包。如下我把生成的可履行文件拷贝到桌面:
C:\Users\Administrator\Desktop\dist>tree /F
C:.
│ test.exe # 277MB
│
└─images
zly.png
C:\Users\Administrator\Desktop\dist>
留意:
程序中会读取
images/zly.png
科履行文件,所以当时可履行文件会在当时目录下找,因而需求把images目录拷贝到dist目录下。还有最好用相对途径,绝对途径拷贝到其他电脑由于途径问题可能会出问题!
能够看到,咱们只打包一个简略的程序,打包出的exe文件就有277MB,这是由于程序会把python解说器,pillow、tkinter、numpy等依靠库包都打包到exe文件中,因而这也是运用pyinstaller打包exe程序比较臃肿的原因
!
到这儿,你已经知道怎样运用pyinstaller打包一个py文件为可履行的exe文件啦,下面介绍pyinstaller的更多参数运用!
2 pyinstaller的更多参数运用
2.1 pyinstaller常用的参数
1、pyinstaller常用的参数
-
-F
:表明生成单个可履行文件,会把生成的exe可履行文件存放到dist目录下!
-
w
: 表明去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删去吧! -
p
: 表明你自己自定义需求加载的类
途径,一般情况下用不到。设置 Python 导入模块的途径(和设置 PYTHONPATH 环境变量的作用类似)。也可运用途径分隔符(Windows 运用分号,Linux 运用冒号)来分隔多个路。 -
i
: 表明可履行文件的图标,就是xxx.ico类型的图片
,怎么生成ico图片能够:参阅
2、pyinstaller更多参数能够运用-h检查
pyinstaller -h
3 pyinstaller常见生成exe文件常见过错
3.1 pyinstaller打包py文件的时分找不到libiomp5md.dll文件
1、在运用:pyinstaller -F test.py
生成可履行文件时报错:Unable to find "C:\software_install\Anaconda_install\Library\bin\libiomp5md.dll" when adding binary and data files.
2、大局查找一下libiomp5md.dll
文件,会发现在Library\bin
目录下有这个文件的,只不过名字被我改为libiomp5md_bak.dll
(之前遇到了一个什么过错,需求删去该目录下的这个文件,所以我备份了一下
),只需求把备份的文件名改回libiomp5md.dll
即可处理上面的问题!
3.2 pyinstall打包的时分报enum相关过错
1、在运用:pyinstaller -F test.py
生成可履行文件时报错:AttributeError: module 'enum' has no attribute 'IntFlag'
2、处理方法:从python 3.6开始,enum34库不再与规范库兼容。该库也是不必要的,所以直接卸载即可:
pip uninstall enum34
参阅:cpython.blog.csdn.net/article/det… 参阅:blog.csdn.net/MaXiaoTianc…