国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python程序打包exe可執(zhí)行軟件教程

這篇具有很好參考價值的文章主要介紹了Python程序打包exe可執(zhí)行軟件教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、前言

Python雖好,但是平時我們寫的代碼都是.py腳本文件,必須要在Python環(huán)境下 才可以運行。如果一臺電腦沒有安裝Python是無法運行我們的程序的。當然你也可以選擇隨身攜帶安裝包。 不過終究是有些麻煩。那么有沒有什么辦法,能把我們編寫的Python代碼轉換成exe文件呢?這樣不管到哪, 只要能打開exe就可以運行我們的程序。當然,辦法是有的。網(wǎng)上一搜就有py2exe、pyinstaller等包可以實現(xiàn) 我們想要的這個功能。這里我們選擇pyinstaller。

2、Pyinstaller的使用

(1)安裝PyInstaller

PyInstaller官網(wǎng)地址在這,點擊進入。其官網(wǎng)首頁非常簡潔。截圖如下:

Python程序打包exe可執(zhí)行軟件教程

官網(wǎng)的“快速開始”建議我們直接通過pip安裝。然后在控制臺轉移到腳本所在的目錄,直接”pyinstaller yourprogram.py” 即可生成exe文件。十分方便。

首先打開控制臺,輸入”pip install pyinstaller”,然后就是靜待安裝。

(2)使用PyInstaller

為了測試它的功能到底好不好用,這里特意挑選了一段稍微復雜點的代碼,如下:

# coding=utf-8
import numpy as np
import cv2


def nothing(x):
    pass


path = raw_input("Input the path of image:\n")
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

threshold = 128
result = gray

cv2.namedWindow("Threshold Test")

cv2.createTrackbar('Threshold', 'Threshold Test', threshold, 255, nothing)
cv2.createTrackbar('0:Off 1:On', 'Threshold Test', 1, 1, nothing)

while 1:
    cv2.imshow('Threshold Test', result)

    k = cv2.waitKey(1) & 0xff
    if k == 27:
        break

    threshold = cv2.getTrackbarPos('Threshold', 'Threshold Test')
    s = cv2.getTrackbarPos('0:Off 1:On', 'Threshold Test')

    if s == 0:
        result = gray
    else:
        ret, result = cv2.threshold(gray, threshold, 255, cv2.THRESH_BINARY)

cv2.destroyAllWindows()

這段代碼引用了比較大的OpenCV函數(shù)庫。而且有控制臺部分,也有圖形界面部分。算是比較全的覆蓋了 可能用到的情況。這段代碼的功能是首先用戶在控制臺輸入一張圖片的地址,然后彈出一個二值化界面。 在該界面上有一個滑動條,可以拖動改變二值化閾值,另一個可以打開或關閉二值化效果。演示圖如下:

Python程序打包exe可執(zhí)行軟件教程

下面就把這個腳本文件變成一個獨立運行的exe。首先打開控制臺,然后切換到該文件所在的目錄下。 注意首先要切換盤符,直接輸入”D:”或其它即可換到該盤下。然后再輸入”cd D:\output"換到該目錄下。 直接cd是換不到D盤的。

Python程序打包exe可執(zhí)行軟件教程

換到該目錄后,輸入”pyinstaller threshold.py”,按回車等待即可。生成時間取決于代碼多少和復雜程度。 完成后如下圖所示。

Python程序打包exe可執(zhí)行軟件教程

再次打開我們的目錄,可以發(fā)現(xiàn)多了幾個東西。

Python程序打包exe可執(zhí)行軟件教程

我們想要的exe可執(zhí)行文件就在dist文件夾中。所以我們只需要將整個這個文件夾隨著攜帶,就可以在沒有Python 的機器上運行我們的程序了。而至于其它的build文件夾和spec文件則是生成過程中產生的文件,我們可以不用管它。

Python程序打包exe可執(zhí)行軟件教程

可以看到PyInstaller把我們引用的OpenCV庫原封不動地包進來了,此外還有其它一些與界面有關的東西。 打開dist中的threshold.exe便可以成功運行程序,如下所示。

Python程序打包exe可執(zhí)行軟件教程

如圖可以看到,首先打開了一個黑框框要我們輸入圖片路徑,然后彈出了界面。和我們預想的一樣,完美達成目標。

(3)只打包一個exe軟件

上面其實我們已經(jīng)實現(xiàn)了我們的目標。但有時我們不想拷給別人一大堆東西。只有一個exe文件。這樣也很好辦,我們 只需要在生成的時候,在文件名前面加上”-F”這個參數(shù)即可。

Python程序打包exe可執(zhí)行軟件教程

輸入”pyinstaller -F threshold.py”。輸出結果就只有一個exe了。

Python程序打包exe可執(zhí)行軟件教程

對比之前的那個exe和這個exe,可以發(fā)現(xiàn)這個更大了(29.4 MB),而上面的那個exe只有3.36 MB。但是整個dist文件夾的 大小是75.9 MB。所以從最終結果上來說,這一種方法更省空間。

但經(jīng)過測試,它雖然省空間,也更方便(只有一個文件),但有點小問題,那就是程序啟動稍微慢一點。同樣的代碼使用第一種 方式生成的exe是可以做到秒開的。而第二種方式的exe,經(jīng)過記錄,從打開到控制臺彈出輸入路徑提示,平均在10秒左右。 個人認為可能的原因在于他把那么多文件壓縮到了一個文件中,所以每次啟動都要先解壓縮那些文件到緩存中,而文件很多, 且壓縮比應該也很高,必然導致很慢。如圖所示是第一種方法生成的文件,有將近1000個文件。

Python程序打包exe可執(zhí)行軟件教程

所以說,魚和熊掌不可兼得。如果說你不介意程序的啟動速度或者說打開一次可以用很久,為了追求方便,那可以使用第二種方法。 如果你的程序需要經(jīng)常打開,那還是建議你采用第一種方法吧。畢竟誰也不想每次開都浪費幾秒鐘的生命, 而且整個文件夾拷給別人也就是一個壓縮包的事。個人猜測如果代碼比較簡單,生成的文件較少。那么可能兩者差異應該不會很大。

此外PyInstaller還支持自定義圖標等等,以上只是介紹了基本功能,更多功能可以去看官方的Manual,點擊閱讀。

3、踩坑記錄

在后續(xù)使用過程中,發(fā)現(xiàn)了PyInstaller的一些弊端,在這里簡單總結一下,并給出解決辦法。

(1)不支持中文

首先是不支持中文,或者說不支持UTF-8編碼。PyInstaller只支持ASCII編碼。下面分別對各種含有中午的情況進行測試。

(2)生成路徑含有中文

如生成路徑為:D:\新建文件夾>pyinstaller 060302.py 。經(jīng)過測試,生成路徑含有中文名,是可以無法生成成功的。如下所示。

Python程序打包exe可執(zhí)行軟件教程

提示錯誤為ascii解碼器無法識別路徑索引為3的地方的’0xd0’字符。所以生成路徑不能有中文。

(3)運行路徑含有中文

根據(jù)上面的結論,生成路徑不含中文,生成成功。然后我們將dist文件夾拷貝到一個中文路徑下,如下圖所示。

Python程序打包exe可執(zhí)行軟件教程

將dist拷貝到“測試”文件夾下,經(jīng)過實驗,發(fā)現(xiàn)是可以正常運行的。因此運行路徑?jīng)]有限制,可以含有中文。 同時可執(zhí)行文件的名稱也可隨意修改,包含中文,因為文件名本身也是路徑的一部分。路徑可含中文,文件名 同樣可以包含中文名。

(4)代碼中含有中文

如果在注釋中含有中文,需要在python文件第一行增加# coding=utf-8,否則python下就會報錯。 如果在代碼本身,如控制臺提示語句中含有中文,同理添加utf-8。這樣可以保證在python下不會出錯。 但即使添加了這句話,在輸出的控制臺還是會有問題。因為PyInstaller輸出的控制臺程序不支持 中文。如下圖所示,“請輸入內容:”在這里變成亂碼了。

Python程序打包exe可執(zhí)行軟件教程

又如需要對一個中文字符串進行處理時,spilt某個中文字符,在python下正常,但是轉換后就會報錯。 如果在控制臺輸入語句中含有中文,轉成exe后可以支持輸入中文。如下。

Python程序打包exe可執(zhí)行軟件教程

總結一下也就是說,如果想轉成exe后還可以正常使用的話,那就不要在執(zhí)行代碼中包含中文字符,否則必然報錯。

(5)控制臺一閃而過

準確來說這不是PyInstaller的問題,而是Windows的問題。即使是用C/C++寫的控制臺程序,在Windows下運行結束后 都會自動退出。由于運行速度很快,給人的感覺就是一閃而過。在C++中解決這個問題是在代碼最后加上一句system('pause'), 或是加上一句輸入語句等待用戶輸入。所以在Python中的解決方法類似,也有兩種解決辦法。

  • 增加輸入語句

在代碼的最后增加raw_input()即可,如果想更完善,可在括號的提示語句里寫上”Press any key to exit.”。

raw_input("Press any key to exit.")

轉為exe后在控制臺下運行的效果如下:

Python程序打包exe可執(zhí)行軟件教程

完美實現(xiàn)了我們想要的效果。

  • 強制暫停

類似于C++下面的system('pause'),這里導入os包,然后添加語句。

importosos.system('pause')

運行效果如下所示:

Python程序打包exe可執(zhí)行軟件教程
  • 控制臺不支持粘貼復制

在控制臺中,發(fā)現(xiàn)不管是Ctrl+V還是鼠標右鍵都無法粘貼。其實并不是不支持,而是需要設置一下。 首先點擊窗口左上角的圖標,然后找到“屬性”。

Python程序打包exe可執(zhí)行軟件教程

然后在打開的選項中找到“快速編輯模式”,選中并點擊確定。這樣就支持復制粘貼了。

Python程序打包exe可執(zhí)行軟件教程

注意在控制臺中復制粘貼是通過鼠標右鍵完成的。選中某段文字單擊右鍵即可復制,復制某段文字后, 回到控制臺單擊右鍵即可粘貼。

  • 可能是某些庫沒有被打包進來

可以在CMD中看看軟件報的錯誤,然后從Python/lib/site-packages找到該包復制到打包后的文件夾中即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-492940.html

到了這里,關于Python程序打包exe可執(zhí)行軟件教程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【python】tkinter程序打包成exe可執(zhí)行文件 全流程記錄(windows系統(tǒng))

    【python】tkinter程序打包成exe可執(zhí)行文件 全流程記錄(windows系統(tǒng))

    【需求背景】 Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應用程序。 我用python寫了一個可視化界面,利用算法計算患COVID-19的概率。 現(xiàn)在需要將Python文件編譯成exe文件,這樣可以直接在Windows上運行,不需要再依賴Python環(huán)境,可以復制到其他電腦中直接

    2024年02月01日
    瀏覽(34)
  • Python使用最新版pyinstaller將項目或程序打包成exe或者mac中的可執(zhí)行文件

    Python使用最新版pyinstaller將項目或程序打包成exe或者mac中的可執(zhí)行文件

    pyinstaller 能夠在 Windows、Linux、Mac 等操作系統(tǒng)下將 Python 源文件打包,通過對源文件打包, Python 程序可以在沒有安裝 Python 的環(huán)境中運行,也可以作為一個獨立文件方便傳遞和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+??梢栽?Windows、Mac 和 Linux 上使用,但是并不是跨平臺的,

    2024年02月08日
    瀏覽(31)
  • Python3.9使用最新版pyinstaller將項目或程序打包成exe或者mac中的可執(zhí)行文件

    Python3.9使用最新版pyinstaller將項目或程序打包成exe或者mac中的可執(zhí)行文件

    pyinstaller 能夠在 Windows、Linux、Mac 等操作系統(tǒng)下將 Python 源文件打包,通過對源文件打包, Python 程序可以在沒有安裝 Python 的環(huán)境中運行,也可以作為一個獨立文件方便傳遞和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平臺的,

    2024年02月09日
    瀏覽(25)
  • python-55-打包exe執(zhí)行

    python-55-打包exe執(zhí)行

    你是否有這種煩惱? 他人在使用你的項目、工具時可能只需關注使用,但還需要安裝各種依賴包? 共用服務機器環(huán)境,偶爾被他人改了依賴包版本,導致運行不起來? 換臺機器環(huán)境又得安裝一遍環(huán)境依賴? 我會發(fā)現(xiàn)每次搞這些都要耗費一大堆時間,于是想到以前也有編譯打

    2024年02月09日
    瀏覽(23)
  • Java 項目打包成exe可執(zhí)行程序

    Java 項目打包成exe可執(zhí)行程序

    簡單記錄一下,Java 項目如何打包成exe可執(zhí)行程序的過程。 第一步 第二步 第三步 第四步 第五步 以上即可將項目打成jar 包 打包完成后可將jar包放到方便操作的地方。(例如桌面) 第一步:blablalbla… 第二步:blablalbla… 第三步:指定exe文件生成目錄。 第四步: 圖標需要指

    2024年02月15日
    瀏覽(26)
  • python代碼打包成可執(zhí)行文件(exe)

    python代碼打包成可執(zhí)行文件(exe)

    【前言】:我們在開發(fā)完一個小項目后,想要把項目發(fā)布出來給別人用。通常都會把代碼打包成exe后再給別人,而不是讓別人去安裝運行環(huán)境再跑裸代碼。本文就是介紹如何使用pyinstaller這個工具將python帶包成可直接運行的exe。 在介紹pyinstaller之前,先簡單介紹下其它幾個可

    2024年02月12日
    瀏覽(22)
  • QT項目打包成可執(zhí)行程序exe(簡易版)

    QT項目打包成可執(zhí)行程序exe(簡易版)

    完成之后Demo文件夾中會生成一些配置文件,此時DC_7已經(jīng)可以直接運行了(如果想給別人使用就得將整個Demo文件夾發(fā)送給別人,比較麻煩,繼續(xù)以下步驟將整個文件夾打包成一個exe) Enigma virtual box工具官方網(wǎng)址:Enigma virtual box(安裝一直下一步就行)

    2024年02月14日
    瀏覽(19)
  • 【Python打包成exe】快速將多個py文件及其他文件打包為exe可執(zhí)行文件

    【Python打包成exe】快速將多個py文件及其他文件打包為exe可執(zhí)行文件

    嘗試了很多種Python打包為exe可執(zhí)行文件的方式,通過總結,得出一種最簡潔、最有效的打包方式分享給大家! 準備好將要打包的工程文件(夾) 如上圖所示, 首先將主文件UI.py和文件夾./file放在一級文件夾./YW下方,如果有同級其他.py文件與UI.py放在同一級文件夾即可! 然后

    2024年01月21日
    瀏覽(29)
  • Python代碼打包成EXE可執(zhí)行文件(避開打包文件太大的坑)

    Python代碼打包成EXE可執(zhí)行文件(避開打包文件太大的坑)

    ??????? 目錄 一、博主的成長經(jīng)歷 ?二、虛擬環(huán)境下打包的好處 ?三、pyinstaller的基礎用法 四、虛擬環(huán)境打包操作實例 五、成果展示 歡迎大家來觀欄~? ——隨喬木涼夏 博主最初使用pyinstaller打包py文件的時候,用的很是順心,命令行復制粘貼,回車鍵一敲,不用多久

    2024年02月09日
    瀏覽(16)
  • python項目打包成exe可執(zhí)行文件(pyinstaller庫)

    python項目打包成exe可執(zhí)行文件(pyinstaller庫)

    前言:才入職新公司;進來工作內容,就是將之前的python腳本項目打包成.exe可執(zhí)行文件;一來方便不同崗位的同事之間使用,二來源碼信息不會改動和泄漏。 正因為python具有豐富的第三方庫,目前已有數(shù)萬之多;這里用到的是 \\\'pyinstaller\\\'庫; 正文: 兩種情況: Ⅰ、單獨一個

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包