python文件打包
A. python桌面應用(pyinstaller打包多個py文件)
一 、當寫這篇文章的時候,pyinstaller官網版本對pyqt5打包可能會遇到Could not find QtWebEngineProcess.exe.的錯誤。解決方法為:
二 、如果有報錯:「could not find or load the Qt platform plugin "windows" 」。原因之一可能是你把打包後的文件放在了中文目錄下。只需要將打包後的文件放在英文目錄下,就可以解決。
三、 多文件打包為單一文件時,即pyinstaller 命令中加入了-F,也可能會導致錯誤。盡量不要使用-F。
使用pyinstaller打包的時候,僅打包.py文件,其餘依賴項只需在打包完成後,拷入打包生成的根目錄即可。
命令格式如下,下命令為一條命令,為方便顯示做了分行處理:
以上文圖中結構為例,在根目錄打開命令窗口,輸入命令:
在目錄結構:「程序根目錄\dist\main\」 下可以找到生成的main.exe。將其他依賴文件拷貝進入「程序根目錄\dist\main\」 下,即可運行。
=========吃雞、擼碼復古鍵盤=========
B. 使用PyInstaller打包Python程序
PyInstaller是一個用來將Python程序打包成獨立可執行軟體的工具,支持 Windows、linux 和 Mac OS X。生成的可執行軟體在沒有Python的環境中可以直接運行,方便軟體分發,進一步降低使用成本,提升使用效率。
下面演示如何使用 PyInstaller 將程序打包成Windows下的exe軟體。
使用pip的方式進行安裝,這樣可以自動安裝其他依賴庫。
如果pip還未安裝,請參考我的另一篇文章《 Python pip包管理工具 》
在cmd命令行控制台或者VS Code內置的終端輸入命令行生成應用,首先將當前路徑切換到Python程序所在的路徑(如下示例的SubOcr.py文件在python文件夾下的SubOcr文件夾內),然後輸入生成應用的命令。
命令執行成功後在 I:workpythonSubOcrdist 文件夾下生成了SubOcr文件夾,裡麵包含了SubOcr.exe文件。整個SubOcr文件夾就是一個綠色軟體,隨便移動到任何位置都可運行。
實際上在用pyinstaller命令時會在Python程序的所在路徑生成一個後綴為spec的同名文件,然後根據此文件的配置生成應用,這就是PyInstaller的原理。這樣做的好處是spec保存了生成應用的配置,每次重新生成應用時可以省略指定參數,尤其是指定了其他的資源、程序庫時。我們可以通過以下命令先生成spec文件。
pyi-makespec的命令參數跟pyinstaller的相同,在生成spec文件後可以對其部分選項進行編輯(可以用VS Code或自帶的記事本編輯),添加更多參數,然後再用pyinstaller命令生成應用。
spec文件的主要選項:
上面示例的SubOcr用到了opencc和opencv-python,其中opencc下的數據文件和opencv-python下的dll文件在生成應用時不會自動導入(缺少這些文件應用無法正常使用),因此需要在spec文件中指定路徑。對spec文件的修改如下:
以上便是PyInstaller打包Python程序的全過程,如果在此過程中遇到問題,可以在評論區留言,定當知無不言,言無不盡。
C. 將Python程序打包成linux可執行文件
1.安裝環境
首先我們要安裝pip,命令如下:
使用的工具是 pyinstaller ,打開終端輸入sudo pip install pyinstaller
2.打包程序
首先在打包之前檢查一下我們的py文件是否可以正常執行,確認無誤後進行打包 pyinstaller -F car_tkinter.py 或者 python3 -m PyInstaller -F main.py
3.執行文件
進入我們打包存放的文件夾,打開終端,執行語句 ./car_tkinter 或者 nohup ./car_tkinter> data.log &