python打包成exe教程(利用nuitka封裝python為exe)
2023-07-26 19:23:32 1
1.為什麼要用nuitka?python一直寫代碼一直爽,運行起來可就沒那麼爽了,尤其是對於我這種還需要邊查邊寫的人來說。
沒探究過怎麼樣的代碼最有效,不會用多線程,幾個月前還把pandas每一列轉list用。
於是,更需要nuitka來幫我轉c ,一邊享受著腦迴路不夠帶來的直線邏輯思維寫代碼的快樂,一邊享受著c 的高效運行速度。
2.用前準備:2.1)安裝編譯器MinGW64:下載網址:
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
按上述標識下載,安裝後設置一下環境。
2.1.1.1)找到安裝目錄,找到bin文件夾,然後複製地址;
2.1.1.2)我的電腦-屬性-高級系統設置-高級-環境變量;
2.1.1.3)系統變量,path中增加上述複製地址。
2.1.2)壓縮包安裝:而很多時候,在線安裝器會不能下載、下載一半斷聯等,讓人十分苦惱,而且如果你是使用Anaconda的話,可以考慮以下方式:
下載網址:https://winlibs.com/#download-release
我的選擇是64,因為我是64位系統,個人使用。如果想用x86,可以考慮win32的版本。
無論是直接設置還是Anaconda設置,均應先解壓縮。
2.1.2.1)直接設置:解壓縮之後,將解壓縮之後的文件夾放置於喜歡的位置,下面以我個人的路徑演示:
我將整個文件至D:\ProgramData這個位置,
於是我得到了兩個路徑:
其一:D:\ProgramData\winlibs-x86_64-posix-seh-gcc-11.2.0-llvm-14.0.0-mingw-w64ucrt-9.0.0-r7\mingw64
其二:D:\ProgramData\winlibs-x86_64-posix-seh-gcc-11.2.0-llvm-14.0.0-mingw-w64ucrt-9.0.0-r7\mingw64\bin
可以看到,重點都在mingw64上,下面設置變量:
因為我是使用Anaconda的,因此已經設置好了,上面沒有打馬賽克的部分,請按照我下方描述設置:
a)系統變量-新建-名稱自定,我設置的是MinGW 64x,輸入其一的地址:
其一:D:\ProgramData\winlibs-x86_64-posix-seh-gcc-11.2.0-llvm-14.0.0-mingw-w64ucrt-9.0.0-r7\mingw64
b)系統變量-雙擊Path-彈出界面選擇新建-輸入其二地址:
其二:D:\ProgramData\winlibs-x86_64-posix-seh-gcc-11.2.0-llvm-14.0.0-mingw-w64ucrt-9.0.0-r7\mingw64\bin
然後確定即可,退回到桌面,win r,輸入CMD,打開命令提示符窗口,輸入命令gcc -v,檢查是否正確安裝配置。
因為我已經設置好,此處不做展示,gcc -v在Anaconda設置後一併展示。
2.1.2.2)Anaconda設置:以我個人文件的路徑,請先找到相對應的位置,
D:\ProgramData\Anaconda3\Library\mingw-w64
將x86_64-posix-sec.7z解壓後文件內的mingw-w64文件夾所有內容整個複製粘貼進上述路徑下,有重名文件就選擇覆蓋。
此時同樣可以得到兩個地址:
其一:D:\ProgramData\Anaconda3\Library\mingw-w64
其二:D:\ProgramData\Anaconda3\Library\mingw-w64\bin
按照"2.1.2.1)常規設置"中所述進行設置,gcc-v命令結果展示:
2.2.1)cmd執行命令pip install nuitka。
2.2.2)Anaconda中安裝nuitka。
最後右下方點擊應用即可自動完成安裝。
3.打包:說在前面,要保證系統中有且僅有一版python。
3.1)cmd打包:老生常談,cd到需要的目錄中去。
下面幾個示例及說明:
python -m nuitka 或者 nuitka | 開頭總是如此(python2.7及以前) 或者 開頭總是如此(python3) |
--standalone | 注意開頭有空格,獨立文件 |
--windows-disable-console | 注意開頭有空格,不顯示CMD控制臺 |
--plugin-enable=pylint-warnings | 注意開頭有空格,報警信息 |
--plugin-enable=numpy --plugin-enable=tk-inter | 注意開頭有空格,需要加載的包 |
--show-memory | 注意開頭有空格,顯示內存佔用 |
--output-dir=Rc text.py | 注意開頭有空格,結尾總是如此,導出的文件夾 py文件 |
python -m nuitka 或者 nuitka | |
--onefile | 打包成單exe |
--windows-onefile-tempdir-spec= | 單個exe臨時文件生成目錄 |
--windows-disable-console | |
--plugin-enable=pylint-warnings | |
--plugin-enable=tk-inter | |
--include-data-file=./x.ico=./x.py | .iconbitmap('x.ico'),打包資源文件。 |
--show-memory | |
--follow-imports | 打包所有imports |
--include-package=requests | 打包requests |
--windows-uac-admin | 允許申請使用管理員模式 |
--windows-icon-from-ico= | 圖標,需要絕對路徑及文件.ico |
--windows-company-name= | 作者信息 |
--windows-file-version= | 軟體版本,規則為0.0.0.0 |
--windows-file-description= | 軟體描述 |
--output-dir=Amendmentbata Amendment.py |
實例:nuitka --onefile --windows-disable-console --include-data-file=./clocklogo.ico=./clock.py --plugin-enable=pylint-warnings --plugin-enable=tk-inter --follow-imports --windows-uac-admin --windows-company-name=wUw_wuwofcproject.com --windows-file-description=©wUw_wuwofcproject.com --windows-file-version=1.0.0.0 --windows-icon-from-ico=W:\python\NUITKA\clocklogo.ico --output-dir=clock2 clock.py
3.2)pychrom使用Anaconda搭建環境的打包:3.2.1)英文界面:命令同上,但是不需要cd到程序所在目錄了。
,