用pyinstaller打包python代碼為exe可執行文件并在其他電腦運行的方法

??本文介紹基于Python語言中的pyinstaller模塊,將寫好的.py格式的Python代碼及其所用到的所有第三方庫打包,生成.exe格式的可執行文件,從而方便地在其他環境其他電腦中直接執行這一可執行文件的方法。

??有時,我們希望將自己電腦上的某個Python文件發到另一臺電腦上使用;而如果這個Python文件中包含了大量的第三方庫,那么首先不僅需要保證另一臺電腦上有Python環境,而且還需要配置好這些第三方庫——這無疑是比較麻煩的。但是,我們可以選擇將Python文件(及其所包含的全部第三方庫)打包為.exe文件,然后發送給其他電腦并直接加以執行;而這個打包的過程,基于Python語言中的pyinstaller模塊,就可以非常方便地進行。本文就介紹一下這個打包的具體方法。

??但是需要注意,pyinstaller模塊打包后的可執行文件是不可以跨平臺使用的——例如,在Windows上將一個Python代碼文件打包,得到的可執行文件就只能在Windows上使用,而在LinuxMac上是不可以使用的;如果大家有這樣跨平臺使用的需求,pyinstaller模塊的官方網站則建議借助Wine來代替實現。

??首先,我們需要配置一下Python語言中的pyinstaller模塊。這里需要注意,如果大家待打包的這個Python代碼文件是放在了虛擬環境中,那么這個pyinstaller模塊也需要配置在這個虛擬環境中。

??在本文中,因為我的待打包文件就是在虛擬環境中,所以首先通過如下的代碼進入這一虛擬環境中。其中,關于Python虛擬環境的創建與使用,大家可以參考文章Anaconda中Python虛擬環境的創建、使用與刪除(https://blog.csdn.net/zhebushibiaoshifu/article/details/128334614)。

conda activate py39

??隨后,輸入如下的代碼,即可開始配置pyinstaller模塊。

pip install pyinstaller

??運行上述代碼,如下圖所示。

??隨后,找到我們需要加以打包的Python代碼文件;如下圖所示,這個紫色框內的Alignment.py文件就是本文中需要打包的Python代碼文件。

??那么,首先通過cd命令,進入待打包文件所在的路徑;在本文中,這里就是執行如下的代碼。

cd F:\Data_Reflectance_Rec\code

??隨后,進入這個文件夾內,我們即可通過如下的命令,將Alignment.py文件加以打包。

pyinstaller -F Alignment.py

??其中,-F表示對Alignment.py文件打包時,只生成唯一的1.exe可執行文件;一般情況下,我們都是帶上這個-F參數來運行打包命令的,因為只生成1.exe可執行文件的話,更方便后期我們對這個可執行文件的分享。

??此外,我們還可以在上述代碼中加入如下的其他常見參數;當然,除此之外還會有很多其他的參數,具體大家參考pyinstaller模塊的官方網站(https://pyinstaller.org/en/stable/index.html)即可。

-h:顯示關于pyinstaller命令的幫助。
-D:如果不想要前面-F的效果,那就用這個-D,從而生成多個可執行文件。
-i:如果大家想修改打包后生成的可執行文件的圖標,就將自己的圖標文件放在這個參數后。
-w:如果大家待打包的Python代碼會生成一個GUI界面,那么需要添加此參數,否則后期打開可執行文件時,你的GUI界面可能會被自動彈出的黑色的控制臺遮蓋導致無法正常顯示。

??對于大多數需求而言,我們就用上述的那一句代碼即可。執行上述代碼,出現如下圖所示的界面,表明已經開始打包了。

??稍等片刻(如果待打包的Python代碼文件中導入的第三方庫比較多,那么打包的時間相對就會長一點,但整體不會太久),出現如下圖所示的提示,表明打包已經成功完成了。

??此時,我們在與待打包Alignment.py文件同目錄的路徑中,可以看到pyinstaller模塊對其打包后生成的3個新的文件夾或文件,如下圖所示。

??其中,打開dist這個文件夾,其中的.exe可執行文件,就是我們打包后的文件。

??接下來,在這臺電腦,或者是其他人的電腦中,運行上圖中的這個.exe可執行文件,就會實現和我們當初待打包的Alignment.py文件相同的功能。

??如下圖所示,我這里因為原本的Alignment.py文件是一個對數據加以計算的文件,所以運行打包后的可執行文件時,就會出現一個黑色的控制臺,而沒有其他的變化。

??至此,大功告成。

歡迎關注:瘋狂學習GIS

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718665.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718665.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python筆記:super(),__getitem()__,__call()__

目錄 Q1:super(NetworkBlock, self).__init__()什么意思 Q2:__call__() 類的實例圓括號自動調用 Q3:__getitem__() 類的實例 方括號自動調用 Q4:沒有雙下劃線方法時,普通的調用類的方法 總結 Q1:super…

Python 全棧系列230 輕全局函數服務 GFGoLite

說明 為了將GlobalFunc推向正常的應用軌道,構造一個功能簡單的服務。 內容 1 工作模式 Server模式:以API服務方式執行 Worker模式: 以Worker方式執行。通過left/right文件夾和rsync方式執行任務并寫結果。 2 構造方法 重載和執行;從標…

基于springboot的助農管理系統的設計與實現

** 🍅點贊收藏關注 → 私信領取本源代碼、數據庫🍅 本人在Java畢業設計領域有多年的經驗,陸續會更新更多優質的Java實戰項目希望你能有所收獲,少走一些彎路。🍅關注我不迷路🍅** 一 、設計說明 1.1研究背…

【網站項目】219一中體育館管理系統

🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。🌹贈送計算機畢業設計600個選題excel文件,幫助大學選題。贈送開題報告模板&#xff…

pywin32,一個超強的 Python 庫!

更多Python學習內容:ipengtao.com 大家好,今天為大家分享一個超強的 Python 庫 - pywin32。 Github地址:https://github.com/mhammond/pywin32 在Python的世界里,有許多優秀的第三方庫可以幫助開發者更輕松地處理各種任務。其中&a…

【性能】后臺與黑屏

目錄 現象觀察 調整應用的電池策略 現象觀察 切換到后臺, 一個心跳期間,就會發close socket 直接黑屏,沒有收到任何消息,直接到onclose,然后有離線觸發 也到時間。 調整應用的電池策略 修改成“無限制”后,就不會斷…

C#面:簡單介紹 序列化 和 反序列化

序列化: 是將對象轉換為可保持或可傳輸的形式的過程。 .NET 具有以下序列化技術: 二進制序列化保持類型保真,這對于多次調用應用程序時保持對象狀態非常有用。 例如,通過將對象序列化到剪貼板,可在不同的應用程序之…

Linxu自動化構建工具make/Makefile究竟時什么?

Linxu自動化構建工具make/Makefile究竟時什么? 一、簡介二、makefile文件制作(簡潔版)2.1 源文件2.2 makefile如何制作2.2.1 依賴關系、依賴方法2.2.3 偽目標(清理文件資源) 三、make/Makefile自動化原理3.1 偽目標為什…

SpringBoot+Vue實現el-table表頭篩選排序(附源碼)

👨?💻作者簡介:在笑大學牲 🎟?個人主頁:無所謂^_^ ps:點贊是免費的,卻可以讓寫博客的作者開心好幾天😎 前言 后臺系統對table組件的需求是最常見的,不過element-ui的el…

Grpc項目集成到java方式調用實踐

背景:由于項目要對接到grcp 的框架,然后需要對接老外的東西,還有簽名和證書剛開始沒有接觸其實有點懵逼。 gRPC 是由 Google 開發的高性能、開源的遠程過程調用(RPC)框架。它建立在 HTTP/2 協議之上,使用 …

D7805 正電壓穩壓電路應用——體積小,成本低,性能好

D7805 構成的 5V 穩壓電源為輸出電壓5V,輸出電流 1000mA 的穩壓電源它由濾波電容 C1,C3,防止自激電容 C2、C3 和一只固定三端穩壓器(7805)后級加 LC 濾波極為簡潔方便地搭成,輸入直流電壓范圍為 7~35V,此直流電壓經過D…

yolov8-更換卷積模塊-ContextGuidedBlock_Down

源碼解讀 class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate2, reduction16):"""args:nIn: the channel of input fea…

Hack The Box-Bizness

目錄 信息收集 nmap dirsearch WEB Get shell 提權 get user flag get root flag 信息收集 nmap 端口掃描┌──(root?ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…

實測VLLM的加速效果

為了測試vllm的并行加速效果,采用同樣的5個提問,編寫兩個不同的python腳本,分別是compare_vllm.py和compare_chatglm3.py,其中compare_vllm.py采用vllm加速。 服務器參數: 操作系統ubuntu 22.04CPUi7 14700k內存dd5 …

hive中常見參數優化總結

1.with as 的cte優化,一般開發中習慣使用with as方便閱讀,但如果子查詢結果在下游被多次引用,可以使用一定的參數優化手段減少表掃描次數 默認set hive.optimize.cte.materialize.threshold-1;不自動物化到內存,一般可以設置為 se…

力扣 第 387 場周賽 解題報告 | 珂學家 | 離散化樹狀數組 + 模擬場

前言 整體評價 手速場模擬場,思路和解法都蠻直接的。 所以搞點活 如果T2,如果不固定左上角,批量查詢某個點為左上角,求滿足總和 ≤ k \le k ≤k的子矩陣個數 如果T2,如果不固定左上角,求總和 ≤ k \le k…

Spring的Bean的生命周期 | 有圖有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整體過程實例化初始化服務銷毀循環依賴問題 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:從Bean的實例化之后,通過反射創建出對象之后,到Bean稱為一個完整的對象&#xf…

EXPLAIN:mysql 執行計劃分析詳解

目錄 EXPLAIN命令 查看執行計劃 分析執行計劃 優化查詢 EXPLAIN中的 type 列類型 在MySQL中,你可以使用EXPLAIN命令來生成查詢的執行計劃。EXPLAIN命令可以顯示MySQL如何使用鍵來處理SELECT和DELETE語句,以及INSERT或UPDATE語句的WHERE子句。這對于…

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么?

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么? 鑒權功能:SRS Stack支持通過系統配置中的OpenAPI獲取Bearer鑒權,并可以嘗試HTTP API。用戶可以通過點擊網頁上的按鈕請求HTTP API,或者使用cu…

快上車:什么是人工智能?人工智能和普通程序的區別

什么是人工智能? 雖然AI歷史很悠久,上個世紀50年代就有各種概念,但是發展很慢。第一次對人類的沖擊就是1997年IBM深藍擊敗國際象棋世界冠軍,引起了人們的廣泛關注,之后又銷聲匿跡。突然間2016人工智能alphaGO戰勝了圍…