PyInstaller的原理簡介
PyInstaller其實就是把python解析器和你自己的腳本打包成一個可執行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成一個可執行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝python和你的腳本依賴庫。在Linux操作系統下,它主要用的binutil工具包里面的ldd和objdump命令。
PyInstaller輸入你指定的的腳本,首先分析腳本所依賴的其他腳本,然后去查找,復制,把所有相關的腳本收集起來,包括Python解析器,然后把這些文件放在一個目錄下,或者打包進一個可執行文件里面。
可以直接發布輸出的整個文件夾里面的文件,或者生成的可執行文件。你只需要告訴用戶,你的應用App是自我包含的,不需要安裝其他包,或某個版本的Python,就可以直接運行了。
需要注意的是,PyInstaller打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運行,就必須針對該平臺進行打包。
pyinstaller將Python腳本打包成可執行程序,使在沒有Python環境的機器上運行
最新版是pyinstaller3.1.1。支持python2.7和python3.3+。
可運行在Windows,Mac和Linux操作系統下。
但它不是跨編譯的,也就是說在Windows下用PyInstaller生成的exe只能運行在Windows下,在Linux下生成的只能運行在Linux下。
pyinstaller在windows下的安裝
使用命令pipinstallpyinstaller即可
在windows下,pyinstaller需要PyWin32的支持。當用pip安裝pyinstaller時未找到PyWin32,會自動安裝pypiwin32。
打包
打包的app里并不包含任何源碼,但將腳本的.pyc文件打包了。
基本語法:
pyinstalleroptionsmyscript.py
常用的可選參數如下:
--onefile將結果打包成一個可執行文件
--onedir將所有結果打包到一個文件夾中,該文件夾包括一個可執行文件和可執行文件執行時需要的依賴文件(默認)
--paths=DIR設置導入路徑
--distpath=DIR設置將打包的結果文件放置的路徑
--specpath=DIR設置將spec文件放置的路徑
--windowed使用windows子系統執行,不會打開命令行(只對windows有效)
--nowindowed使用控制臺子系統執行(默認)(只對windows有效)
--icon=將file.ico添加為可執行文件的資源(只對windows有效
以上內容為大家介紹了python可以編譯成exe程序嗎,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。