PyInstaller打包python程序

2022-01-24 測試工程師小站

用python寫的工具寫好了,想打包然後發給測試同事使用,最後選擇了PyInstaller,支持Windows、Linux、OS X,支持打包成一個文件夾或單個EXE文件。

我是直接在線安裝的,在CMD輸入:pip install pyinstaller
自動下載了PyInstaller-3.1.1.tar.gz和pypiwin32-219-cp27-none-win_amd64.whl並安裝。

如果不行也可以去官網自己下載安裝(http://www.pyinstaller.org/),不過應該要先安裝pypiwin32。

安裝後,把要打包的文件main.py(界面),b.py(邏輯,在main中調用),config.ini(配置文件)複製到F:\pkg

在CMD中進入F:\pkg,輸入:pyinstaller main.py
然後就在F:\pkg生成build和dist文件夾和一個main.spec配置文件,dist下就是打包好的文件了,運行main.exe,一閃就沒了,在CMD再次運行,報錯是找不到ini文件,把ini複製到dist下,再次運行,可以了。

但是運行main.exe後,會多出一個CMD窗口。後面搜索後查找有一個參數-w, --windowed, --noconsole
可以關閉控制窗口。

刪除打包的文件,重新打包:pyinstaller -w --windowed --noconsole main.py
將config.ini複製過去後再次運行,OK了,這次沒有控制窗口了,不過程序在調用subprocess時,仍會閃現一下控制窗口,不過沒關係了,這也算間接提示我命令運行了吧。但我的程序後來還遇到個問題,有個函數以此方法打包,會無法調用。

然後再想,打包不可能需要手動複製ini文件的,應該可以一起打包進去。
再次查詢pyinstaller的官方wiki,發現可以編輯main.spec實現。類似這樣
a = Analysis(…
    datas=[ ('src/README.txt', '.') ],
    …
    )
只要修改datas元組就可以了。第一參數是文件目錄,第二個參數是放在打包好的文件的目錄,'.'就是首級目錄了

修改後,再運行命令pyinstaller -w --windowed --noconsole main.spec
OK了,這次打包的時候直接就把config.ini打進去了

以上打包都是打成一個文件夾,後來試了下打成單個EXE
命令:pyinstaller -F -w --windowed --noconsole main.py
然後同樣把config.ini複製過去就OK了

然後我們可以加個圖標。首先找個圖片,然後百度一個icon網站,轉換一下格式,我選的大小是128*128
將保存的圖片ico.ico放到F:\pkg
輸入命令:pyinstaller -F -w --windowed --noconsole -i ico.ico main.py
這樣,打出來的文件圖標就是自己的了

相關焦點

  • Python|Pyinstaller打包Python程序的過程詳解
    但, 小編在安裝時,不是走的這種方式,而是下載Pyinstaller的源文件,http://www.pyinstaller.org/downloads.html,命令行界面中cd到Pyinstaller的目錄下,執行python seteup.py install應用這種方式的需要自行先下載安裝pywin32庫,需要注意它的版本一定要與python的版本一致
  • Python Pyinstaller-打包程序
    寫了一個腳本要在他的電腦中運行,但是基本很多人沒有安裝python的環境和一些必要的庫,要是一個個安裝的話就很不方便了        所以可以使用pyinstaller來給程序打包,似乎還有其他的一些庫也可以實現,不過還是喜歡用這個,簡單粗暴,不過打包出來的exe確實挺大的,打包一時爽,打開五秒鐘。。。
  • Python打包發布神器—Pyinstaller
    的過程中,你肯定會遇到需要把.py腳本打包成.exe的情形,如此,至少有兩方面的好處:第一,你的代碼保密性更好,其他人不能直接看到python代碼;第二,打包後的exe程序無需再安裝相應的模塊即可直接使用;其中,第二條是我們做打包工作的主要考慮,方便工具的分發和使用。
  • python項目打包之Pyinstaller
    事實上,提到python,大部分人腦海中更多的是開源和生態豐富,與打包分發的印象關聯不大。並且python官方也並未像c、c++、java等語言提供可以直接打包編譯分發的工具。於是,使用python編寫完項目後,如何將這個項目進行分發就成了難題。但是,python社區怎麼會放任這個問題不管呢?隨後,python使用者們便有了pyinstaller模塊。
  • pyinstaller-Python打包工具
    我百度了一下發現了一個Pyinstaller模塊,使用它可以將Python源文件打包成一個.exe應用程式,只要執行它不用安裝Python也可以執行了;使用pyinstaller庫對源文件打包非常簡單,在cmd中輸入pyinstaller Python文件名就可以,執行後,py文件所在目錄將生成dist和build兩個文件。其中build文件夾中保存的是臨時文件目錄可以安全刪除。
  • 利用pyinstaller打包Python程序為一個可執行文件
    目前(2020)最佳的策略是使用pyinstaller。pyinstaller不僅支持打包整個運行環境到一個可執行文件,而且還支持加密。但唯一的問題是,必須依賴外部的libc.so。兩個問題在pyinstaller中都無法解決,只能規避。因此,pyinstaller仍然無法幫助Python獲得像Golang、Rust那樣完美的打包效果,但也算比較接近了。
  • Python打包工具--Pyinstaller詳細介紹
    修改鏡像默認配置後完成了pyinstaller的下載後,終於趕在日落西山前將我這一行print代碼打包成了exe文件,發給同事炫耀。現在想想好幼稚...也許就是因為pyinstaller這傢伙,導致我的python路線直接跳過基礎,從easygui和tkinter開始了...有exe如果再能配上GUI,那豈不是裝13必備。
  • pyinstaller打包Python文件為exe方法
    Successefully installed pip-xx.xx.xx 安裝成功2.打包python文件1.進入打包文件所在文件夾,比如打包好的文件在dist文件夾內,裡面有很多文件,多為程序運行的動態庫
  • 用python打包exe應用程式-PyInstaller
    /Linux/MacOS三大主流平臺,能夠把 Python 腳本及其所在的 Python 解釋器打包成可執行文件,從而允許最終用戶在無需安裝 Python 的情況下執行應用程式。PyInstaller 製作出來的執行文件並不是跨平臺的,如果需要為不同平臺打包,就要在相應平臺上運行PyInstaller進行打包。2、PyInstaller安裝有時候會安裝失敗?
  • 三個你必須要記住的Pyinstaller打包命令——利用Python實現打包exe
    PS: 如果打包為exe的話,版本儘量選擇python3.6+32位版本,因為win64位系統向下兼容32位程序,但是如果不考慮32位系統的話無所謂,直接python64位版本直接打包就可以,只是只能在win64位系統上跑。
  • Python實現貪吃蛇小遊戲!!pyinstaller打包成exe!
    pygame允許你在 Python 程序中創建功能豐富的遊戲和多媒體程序,是一個高可移植性的模塊可以支持多個作業系統,用它來開發小遊戲非常適合。pip install pygame -i http://pypi.douban.com/simple --trusted-host pypi.douban.com利用python的pygame第三方庫和面向對象編程的方法,實現簡單的貪吃蛇小遊戲,還可用pyinstaller打包成exe,方便自己想玩的時候直接點開或者分享給別人
  • 乾貨 | pyinstaller打包exe免殺和逆向淺析
    python3程序打包為exe文件,目前的主流方法大致分為以下幾種:其中,pyinstaller是可以將py文件直接打包為一個exe的,效果相對較好。另外兩種打包的文件都很零碎。,就像易語言打包的exe程序都會被殺一樣。
  • Pyinstaller 打包的兩個小技巧,太實用啦~
    安裝pyinstaller2. 打包初體驗3. 打包進階體驗4. 帶配置文件打包(高級)5. 添加隱式調用庫(高級)1. 安裝pyinstallerPyInstaller是一個用來將Python程序打包成一個獨立可執行文件的第三方包。
  • Pyinstaller打包,文件太大了怎麼辦?
    直接用Pyinstaller,打開cmder:pyinstaller -Fw E:\test\url_crawler.py (-F 是打包成一個文件,-w是不出現調試窗口,因為我的小工具裡有GUI,所以不用默認的調試窗口
  • 【python學習第七篇】Python 程序打包成 exe 可執行文件
    安裝完後,檢查安裝成功與否:pyinstaller 安裝成功後,就可以使用下面的命令了:pyinstaller : 打包可執行文件的主要命令,詳細用法下面會介紹。        需要注意的是,PyInstaller 打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運行,就必須針對該平臺進行打包。實踐問題        pyinstaller 打包後的 exe 運行怎麼去掉彈出的命令行提示窗口?        1.
  • 如何將 Python 程序打包成 .exe 文件?
    於是我想是不是可以將我的程序打包成可執行文件,直接運行?就像這樣:helloPython 程序都是腳本的方式,一般是在解析器裡運行,如果要發布出去,需要提前安裝解析器才可以運行,為了在 Windows 裡方便發布,只要點擊一個 EXE 文件運行,並且打包所需要庫文件,這樣發布給用戶使用就會更方便。
  • Python文件打包成exe可執行程序
    背景 有時寫的Python程序需要交給業務人員使用,但業務人員電腦上基本都沒有安裝Python,並且業務人員也不會使用命令行,所以就需要把
  • 想把 python 代碼打包為 exe 程序?只要這簡單三步就能搞定啦~
    最近有部分小夥伴問我,python 寫的項目可不可以打包成 exe 程序,放到沒有 python 環境上的電腦中執行?答案當然是可以的。python 有一個叫做 pyinstaller 的第三方庫,是專門用來將 python 程序打包 exe 程序的。今天就專門給大家分享一下如何進行打包,使用之前需要大家先使用 pip 進行安裝。
  • Python打包利器:auto-py-to-exe
    什麼是auto-py-to-exeauto-py-to-exe 是一個用於將Python程序打包成可執行文件的圖形化工具。本文就是主要介紹如何使用 auto-py-to-exe 完成 python 程序打包。
  • 可視化 Python 打包 exe,絕了!
    什麼是auto-py-to-exeauto-py-to-exe 是一個用於將Python程序打包成可執行文件的圖形化工具。本文就是主要介紹如何使用 auto-py-to-exe 完成 python 程序打包。auto-py-to-exe 基於 pyinstaller ,相比於 pyinstaller ,它多了 GUI 界面,用起來更為簡單方便# 2.