PyInstaller常用打包命令舉例詳解
學(xué)習(xí)了pyqt后,設(shè)計(jì)了界面,并且需要打包為exe程序。
每次打包時(shí),都要查好久資料,故此記錄一下常用的命令。
PyInstaller 是一個(gè) Python 應(yīng)用程序打包工具,它可以將 Python 程序打包為單個(gè)獨(dú)立可執(zhí)行文件。
要使用 PyInstaller 打包 Python 程序,需要在命令行中使用 pyinstaller 命令。命令的基本語(yǔ)法如下:
pyinstaller [options] script[.py]
其中,script 是要打包的 Python 腳本文件的文件名,可以帶 .py 后綴。options 是可選的命令行選項(xiàng),可以用來(lái)指定打包的方式、輸出文件的位置等。
下面是一些常用的命令行選項(xiàng):
- -F:將所有文件打包為一個(gè)單獨(dú)的可執(zhí)行文件。
- -D:將所有文件打包為一個(gè)目錄,包含可執(zhí)行文件和所有依賴的文件。
- -c:將程序與命令提示符結(jié)合在一起,以便在命令提示符下運(yùn)行。
- -d:將調(diào)試信息打包進(jìn)可執(zhí)行文件中。
- –onefile:將所有文件打包為一個(gè)單獨(dú)的可執(zhí)行文件。
- -o:指定輸出文件的位置。
- -w:打包為窗口文件。
- -p DIR, –path=DIR:設(shè)置導(dǎo)入路徑,從而導(dǎo)入需要的模塊
舉個(gè)例子,如果要使用 PyInstaller 打包名為 script.py 的 Python 腳本文件,并將所有文件打包為一個(gè)單獨(dú)的可執(zhí)行文件,可以使用以下命令:
pyinstaller -F script.py
可以使用以下命令來(lái)指定可執(zhí)行文件的名稱:
pyinstaller script.py -n my_script
為程序加了個(gè)圖標(biāo):
Pyinstaller -F -i 風(fēng)險(xiǎn)圖標(biāo).ico fengxianjiansuan.py
打包pyqt設(shè)計(jì)的界面:
pyinstaller --paths D:\anaconda3\Lib\site-packages\PyQt5\Qt\bin -F -w -i 風(fēng)險(xiǎn)圖標(biāo).ico 風(fēng)險(xiǎn)計(jì)算加資金管理_邏輯.py
–paths D:\anaconda3\Lib\site-packages\PyQt5\Qt\bin 此行命令不可缺少!
注意:打包時(shí),需要進(jìn)入到存在py文件的目錄,然后進(jìn)入cmd界面進(jìn)行打包。
pyinstaller --paths D:\anaconda3\Lib\site-packages\PyQt5\Qt\bin -F -w -i 風(fēng)險(xiǎn)分析圖標(biāo).ico 風(fēng)險(xiǎn)計(jì)算界面簡(jiǎn)易版邏輯.py
打包好后,測(cè)試了一下,運(yùn)行良好!
附:pyinstaller打包后運(yùn)行報(bào)錯(cuò)
當(dāng)使用PyInstaller打包Python程序后運(yùn)行時(shí)遇到問題,可能的原因和解決方法包括:
- 磁盤空間不足。檢查磁盤空間,尤其是系統(tǒng)盤,確保有足夠的空間來(lái)運(yùn)行程序。1
- 缺少模塊。檢查環(huán)境是否已安裝所需包。如果沒有,使用`pip install`命令安裝。對(duì)于特定模塊,如`mmcv`,需要在打包命令中添加`--hidden-import`參數(shù)。
- 文件路徑問題。確保打包文件的路徑中沒有中文或空格。23
- 權(quán)限問題。檢查文件是否被其他程序占用,或者是否被殺毒軟件阻止。可能需要以管理員身份運(yùn)行命令,或者關(guān)閉殺毒軟件后再嘗試打包。4
- 第三方庫(kù)版本不匹配。確保Pyinstaller版本與Python和第三方庫(kù)版本匹配。如果不匹配,嘗試卸載并重新安裝合適的版本。2
- 缺少依賴包。在PyCharm中,通過(guò)設(shè)置查看項(xiàng)目中使用的第三方庫(kù),并將這些庫(kù)復(fù)制到打包時(shí)指定的路徑中。5
- 隱藏導(dǎo)入問題。在打包命令中添加`--hidden-import`參數(shù),指定需要隱藏導(dǎo)入的模塊。16
- 系統(tǒng)文件缺失。檢查系統(tǒng)文件,如`win32ctypes.pywintypes.error`,可能是由于系統(tǒng)文件缺失或損壞。6
如果上述方法都無(wú)法解決問題,可能需要考慮更換打包工具或檢查系統(tǒng)環(huán)境。
總結(jié)
到此這篇關(guān)于PyInstaller常用打包命令的文章就介紹到這了,更多相關(guān)PyInstaller常用打包命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python用socket實(shí)現(xiàn)協(xié)議TCP長(zhǎng)連接框架
大家好,本篇文章主要講的是python用socket實(shí)現(xiàn)協(xié)議TCP長(zhǎng)連接框架,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02Python靜態(tài)類型檢查新工具之pyright 使用指南
這篇文章主要介紹了Python靜態(tài)類型檢查新工具之pyright 使用指南,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算的實(shí)現(xiàn)代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python簡(jiǎn)單幾步獲取各種DOS命令顯示的內(nèi)容詳解流程
你會(huì)用python獲取各種DOS命令顯示的內(nèi)容核心嗎?說(shuō)的可不是返回值,是用system()函數(shù)調(diào)用windows操作系統(tǒng)的DOS命令來(lái)做點(diǎn)事情,需要的朋友可以參考下2021-10-10Python PyQt5學(xué)習(xí)之自定義信號(hào)
PyQ5已經(jīng)自動(dòng)定義了很多QT自建的信號(hào)。但是在實(shí)際的使用中為了靈活使用信號(hào)與槽機(jī)制,可以根據(jù)需要自定義信號(hào)。本文就將為大家詳細(xì)講講PyQt5自定義信號(hào),感興趣的可以了解一下2022-03-03用Python寫飛機(jī)大戰(zhàn)游戲之pygame入門(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng)
這篇文章主要介紹了用Python寫飛機(jī)大戰(zhàn)游戲之pygame入門(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng),需要的朋友可以參考下2015-11-11Python3.7 版本 lxml 模塊無(wú)法導(dǎo)入etree 問題及解決方法
這篇文章主要介紹了Python3.7 版本 lxml 模塊無(wú)法導(dǎo)入etree 問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01Python實(shí)現(xiàn)自動(dòng)化Word排版
Word是一款廣泛使用的文檔編輯工具,但在排版過(guò)程中可能會(huì)遇到繁瑣的重復(fù)操作,下面我們就來(lái)學(xué)習(xí)一下如何使用Python實(shí)現(xiàn)自動(dòng)化的Word排版,讓文檔編輯變得更加高效便捷吧2025-04-04Django 登錄注冊(cè)的實(shí)現(xiàn)示例
本文主要介紹了Django 登錄注冊(cè)的實(shí)現(xiàn)示例,這是做網(wǎng)頁(yè)登錄和注冊(cè)基本上都是必要一步,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10