pyinstaller可将python脚本打包成可执行文件exe,从而摆脱python环境。
1.下载pyinstaller
pip installer pyinstaller
2.进入到 pyinstaller的安装路径下,执行
pyinstaller -F +脚本绝对路径
3.如果脚本中含有依赖文件或图片什么的,2的方法在exe转移后是不可执行的,因此需要将依赖文件一起打包才行。
将步骤2换为
3.1 pyi-makespec +脚本绝对路径 (此时会在当前路径产生一个 脚本名.spec的文件)
3.2 编辑 脚本名.spec文件 修改 a 下的 datas(默认的datas是[] datas=[('C:\\Users\\Administrator\\Desktop\\a.png','')],其中,第一个地址是脚本所需的本地文件绝对路径,第二个地址是把文件存在生成的exe文件夹的什么文件夹下【请对应脚本里的地址,脚本引用的地址应该是 exe所在文件夹下的路径】 )
3.3 pyinstaller 脚本名.spec
(3的方式视乎不太有效,exe文档单独转移,附加文件仍然读不了了。 解决办法:把图片读成 .py文件)
# -*- coding: UTF-8 -*-
import PIL.Image
import os, sys
def convert(path):
PIL.Image.open(path).save("c:/Users/Administrator/Desktop/aa.png")
if __name__ == '__main__':
x = 'C:/Users/Administrator/Desktop/a.png'
convert(x)
使用方法
from aa_png import img as pic
import base64
import tkinter as tk
from tkinter import filedialog
tmp = open('pic.png', 'wb')
tmp.write(base64.b64decode(pic))
tmp.close()
import os
#现在'pic.png'就能用了,用完(加载到程序里之后)删了就好
os.remove('pic.png')
4.打包多个依赖的.py文件及对生成的exe压缩
下载upx
pyinstaller main.py -p **.py --upx-dir upx解压路径
(注:依赖文件最好和主.py文件在同一文件夹下)
5.添加图标
1.通过在线网站,将图片格式转化为.ico格式
2.在步骤2中添加参数 -i + .ico路径即可
-------------------
可能遇到的问题,pugins没找到
通过终端提示的 check路径,这个路径一般是不存在的,然后自己建一个路径,找到两个文件 pyqt5.dll和pyqt5qmlplugin.dll,拷贝到该路径下即可。