Python指令碼生成單個EXE檔案

2021-09-11 16:47:24 字數 2753 閱讀 1545

系統=>windows10:64位

語言=>python:3.7.1

第三方庫pywin32:224pyinstaller:3.4pyqt5:5.11.3

工具=>pycharm:2018.3.1使用pip命令安裝第三方庫:

image

pip install pywin32

pip install pyinstaller

pip install pyqt5

2、安裝pycharm首先編寫需要轉換exe的python**,使用pyqt5做乙個簡單的gui建立乙個窗體

import sys

from pyqt5.qt import *

# 例項物件

# 窗體大小

window = qwidget()

window.resize(500, 500)

window.setwindowtitle('測試')

window.move(400, 200)

# 顯示窗體

window.show()

**在窗體上新增乙個標籤**

# 標籤

label = qlabel(window)

label.settext('測試顯示')

label.move(250, 100)

**定義兩個槽函式,功能是修改標籤上的內容**

# 槽函式1

def btn_old():

label.settext('測試顯示')

# 槽函式2

def btn_new():

label.settext('點我幹啥')

在窗體上新增兩個按鈕,並鏈結槽函式

# 按鈕1

btn1 = qpushbutton(window)

btn1.settext('恢復顯示')

btn1.move(200, 200)

btn1.clicked.connect(btn_old)

# 訊號與槽

# 按鈕2

btn1 = qpushbutton(window)

btn1.settext('修改顯示')

btn1.move(300, 200)

btn1.clicked.connect(btn_new)

# 訊號與槽

乙個簡單的gui搞定,完整**如下,**並未做優化,只是測試用。檔名稱定義為test.py

image

開啟命令視窗,切換到****test.py檔案的路徑下

輸入命令

開始執行**,執行完成之後,在text.py檔案的目錄下有乙個dist資料夾, 裡面就有生成的exe檔案

搞定,直接雙擊執行編寫好的gui程式。

pyinstaller部分引數的含義

-f 表示生成單個可執行檔案

-w 表示去掉控制台視窗,這在gui介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧!

-i 表示可執行檔案的圖示

pyinstaller注意點

1、有一些**需要呼叫一些和資源檔案的,這是不會自動匯入的,需要你自己手動複製進去才行。不然exe檔案執行時命令視窗會報錯找不到這個檔案。

2、當你使用錯誤的引數去打包或者打包到一半中斷,等等此類執行到一半沒了的情況。會導致你原來的py檔案變成乙個0kb的空檔案。裡面的**會全部消失!!!所以以後需要有個良好的習慣,就是複製乙份**出來,用這個副本進行打包。並且引數出錯,或者打錯了導致失敗時,檢查下副本檔案的py檔案是否還存在再繼續重新打包,不然打出來的就是空的檔案,自然一直閃退,因為壓根沒內容。

3、寫**的時候應當有個良好的習慣,用什麼函式導什麼函式,不要上來import整個庫,最後你會發現你乙個100kb的**打包出來有500mb,全是庫,簡直無語

python指令碼生成exe檔案

pywin32 pyinstaller 安裝完成後,首先生成乙個test檔案,實現乙個簡單gui介面 from tkinter import class frame def init self,master none frame.init self,master self.createwidgets...

boost 生成單個庫

1.在命令列中操作,首先應該轉到boost目錄中下,就算為bjam設定了正確的path變數,在其他目錄使用bjam仍可能出錯。2.不要輕易在命令列中臨時設定path變數,除非把以前的值也儲存。網上的一些經驗說使用vs2003自帶的命令列工具,這個命令列工具只不過是執行了乙個批處理來改變path變數。...

LSTM文字生成(單詞級別)

20200818 前面文章中,介紹了字元級別的文字生成 lstm生成文字 字元級別 在字元級別的生成過程中,利用滑動視窗的形式來持續生成文字。本文中介紹看到的另外一篇基於單詞的生成形式。本篇文章中,主要參考了kaggle上的一篇文章 1 在模型中,使用了embedding層,然後輸入其實是句子。但是...