您好,登錄后才能下訂單哦!
利用Python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行。本篇將介紹利用套件「PyInstaller」制作exe檔。
1|0安裝方法
#安裝pyinstaller pip install pyinstaller #安裝依賴 pip install pywin32-ctypes
2|0常用參數介紹
pyinstaller -h來查看參數
-F打包成一個exe文件
-i圖標路徑
-w使用視窗,無控制臺
-c使用控制臺,無視窗
-D創建一個目錄,包含exe以及其他一些依賴性文件
編譯文件時,我們通常使用如下命令:
pyinstaller -F -w -i favo.ico main.py
3|0靜態文件
對于python所依賴的圖片,config.yaml等靜態文件,pyinstall不會自動打包,需要手動在main.py(所需要打包的入口文件)的相同目錄中尋找main.spec,修改datas依賴,才可以自動打包到exe的相同目錄下,然后執行即可
datas是一個數組,每個子項是一個tuple,其中tuple的第一個參數是你要打包的源路徑,第二個參數是打包后的名字
# -*- mode: python -*- block_cipher = None a = Analysis(['ui.py'], pathex=['C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test'], binaries=[], datas=[('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\images','images'),('C:\\Users\\user\\Desktop\\resilio\\toyou\\code\\zeus_board_test\\question.yaml','question.yaml')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False)
然后執行:
pyinstaller -F main.spec
4|0示例
如下圖所示,我們編寫一個輸出helow pyinstaller的Python程序,并利用input()使程序可以暫時停在輸出畫面。
print('helow pyinstaller') input('please wait:')
編譯python為exe,編譯過程中會自動安裝相關依賴
pyinstaller -F hello.py
編譯過程中會產生如下輸出:
… 6942 INFO: checking PY 6944 INFO: Building because toc changed 6944 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz 7559 INFO: Building PYZ(ZlibArchive)C:\Users\user\Desktop\test\build\test\PYZ-00.pyz completed successfully. 7568 INFO: checking PKG 7569 INFO: Building because toc changed 7569 INFO: Building PKG(CArchive)PKG-00.pkg 9407 INFO: Building PKG(CArchive)PKG-00.pkg completed successfully. 9409 INFO: Bootloader c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe9409 INFO: checking EXE 9411 INFO: Building because toc changed 9411 INFO: Building EXE from EXE-00.toc 9412 INFO: Appending archive to EXE C:\Users\user\Desktop\test\dist\test.exe 9455 INFO: Building EXE from EXE-00.toc completed successfully.
通過輸出可以看出pyinstaller進行了如下操作:
會先建立一個hello.spec
建立「build」文件夾
建立log紀錄檔與工作檔案于文件夾build中
建立「dist」文件夾
建立執行檔(.exe)在「dist」文件夾
4|1注意事項
執行檔案可在win8/win10,64位的電腦運行,但win7 x64和其余所有32位失敗,會提示不兼容,若要能32位與64位皆可運行,就要在Python 32位的環境下編譯PyInstaller打包exe,才能在32位與64位成功。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。