使用pyinstaller生成exe可執行文件

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,拷貝到該路徑下即可。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章