目錄
1、Nuitka環(huán)境安裝
2、安裝nuitka
3、防止環(huán)境變量不生效,重啟項(xiàng)目、重啟電腦。
4、打包常用命令。使用nuitka --help可查看所有命令
5、常規(guī)打包一段簡單的pyside代碼?
6、升級:只編譯我們自己編寫的代碼。引用的代碼全部使用pyd來訪問。
7、包缺失
8、用 enigmaprotector 再次打包成單個文件比較好
1、Nuitka環(huán)境安裝
①下載gcc文件。提取碼:8888百度網(wǎng)盤 請輸入提取碼
②解壓nuitka1.0.6版本,我們解壓64位的。
③設(shè)置環(huán)境變量
④檢測一下
gcc.exe --version
2、安裝nuitka(本教程這里的nuitka版本必須是1.0.6)
pip install nuitka==1.0.6
pip install ordered-set
3、防止環(huán)境變量不生效,重啟項(xiàng)目、重啟電腦。
4、打包常用命令。使用nuitka --help可查看所有命令
--mingw64 #默認(rèn)為已經(jīng)安裝的vs2017去編譯,否則就按指定的比如mingw(官方建議)
--standalone 獨(dú)立環(huán)境,這是必須的(否則拷給別人無法使用)
--windows-disable-console 沒有CMD控制窗口
--output-dir=out 生成exe到out文件夾下面去
--show-progress 顯示編譯的進(jìn)度,很直觀
--show-memory 顯示內(nèi)存的占用
--enable-plugin=pyside6
--plugin-enable=tk-inter 打包tkinter模塊的剛需
--plugin-enable=numpy 打包numpy,pandas,matplotlib模塊的剛需
--plugin-enable=torch 打包pytorch的剛需
--plugin-enable=tensorflow 打包tensorflow的剛需
--windows-icon-from-ico=你的.ico 軟件的圖標(biāo)
--windows-company-name=Windows下軟件公司信息
--windows-product-name=Windows下軟件名稱
--windows-file-version=Windows下軟件的信息
--windows-product-version=Windows下軟件的產(chǎn)品信息
--windows-file-description=Windows下軟件的作用描述
--windows-uac-admin=Windows下用戶可以使用管理員權(quán)限來安裝
--linux-onefile-icon=Linux下的圖標(biāo)位置
--onefile 像pyinstaller一樣打包成單個exe文件(2021年我會再出教程來解釋)
--include-package=復(fù)制比如numpy,PyQt5 這些帶文件夾的叫包或者輪子
--include-module=復(fù)制比如when.py 這些以.py結(jié)尾的叫模塊
5、常規(guī)打包一段簡單的pyside代碼 ?
from PySide6.QtCore import QRect
from PySide6.QtWidgets import QApplication,QWidget, QPushButton, QLineEdit
class Form(QWidget):
def __init__(self, parent=None):
super(Form, self).__init__(parent=parent)
self.setWindowTitle("首次")
self.resize(320, 180)
# 按鈕
button = QPushButton(self)
button.setText("提交")
# 位置(x,y,width,height)
button.setGeometry(QRect(150, 50, 100, 50))
button.clicked.connect(lambda: print(edit.text()))
# 單行輸入框
edit = QLineEdit(self)
edit.setPlaceholderText("請輸入密鑰")
# 位置(x,y,width,height)
edit.setGeometry(QRect(10, 10, 100, 50))
if __name__ == '__main__':
app = QApplication([])
form = Form()
form.show()
app.exec()
打包命令:
?nuitka --mingw64 --standalone --show-progress --show-memory --output-dir=out --enable-plugin=pyside6 main.py
會發(fā)現(xiàn)無法下載GitHub的文件,我們手動下載一下,然后放到提示的目錄中
然后一路yes即可打包完成
打開打包后的exe文件:秒開!(為了調(diào)試方便,我這里沒有隱藏黑窗口)
6、升級:只編譯我們自己編寫的代碼。引用的代碼全部使用pyd來訪問。
在根目錄新建文件夾need用來存放我們自己的代碼
最外層只放一個啟動類main.py
打包:跟第5步打包命不同,在基礎(chǔ)上加了:--nofollow-imports? --follow-import-to=need
nuitka --mingw64 --standalone --show-progress --show-memory --output-dir=out --enable-plugin=pyside6 --nofollow-imports --follow-import-to=need main.py
?打包的速度的成功率將會高很多。
nuitka --follow-imports --show-progress --mingw64 main.py
--follow-imports # 打包import的文件
--standalone # 脫離python環(huán)境
--show-progress # 展示打包詳情的控制臺輸出
--include-package=requests # 將requests包打包進(jìn)exe
--mingw64 # 指定編譯器
--plugin-enable=requests # 導(dǎo)入第三方包
-o wenshu.exe # 指定exe名字
--output-dir= # 指定打包后的路徑,默認(rèn)當(dāng)前路徑
--windows-disable-console # 去掉黑窗口
--windows-icon= # 指定圖標(biāo)
nuitka --plugin-list # 查看可用的插件
7、包缺失
pip install numpy
現(xiàn)在我們在上一步的代碼中加入一句:
然后進(jìn)行打包,并啟動,發(fā)現(xiàn)閃退,說明打的包有問題
我們使用黑窗口打開剛剛打包好的main.exe
我們從venv/lib/site-packages下找到numpy包,復(fù)制到disk目錄中
然后再執(zhí)行main.exe即可正常運(yùn)行
所有缺失的包都可以這樣處理!!!
8、用 enigmaprotector 再次打包成單個文件比較好
略文章來源:http://www.zghlxwxcb.cn/news/detail-432393.html
結(jié)尾、掃一掃下方微信名片即可+博主徽信哦?↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓? ↓↓↓文章來源地址http://www.zghlxwxcb.cn/news/detail-432393.html
到了這里,關(guān)于Nuitka打包教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!