最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python代碼打包到exe的實(shí)現(xiàn)示例

 更新時(shí)間:2025年11月25日 09:17:56   作者:測(cè)繪導(dǎo)航小菜鳥(niǎo)  
本文主要介紹了python代碼打包到exe的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、背景

交給其他同事用python編寫的工具,沒(méi)安裝python就比較麻煩,所以學(xué)習(xí)如何把python源代碼打包,在沒(méi)有python環(huán)境的電腦也可以使用。

二、安裝打包工具 Pyinstaller

實(shí)際使用的是國(guó)內(nèi)清華源的工具,網(wǎng)速會(huì)快一點(diǎn)

pip install Pyinstaller
pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清華源

需要注意,這里若出現(xiàn) pip不是內(nèi)部外部指令的提示,說(shuō)明python安裝路徑?jīng)]有設(shè)置未系統(tǒng)變量,具體操作為:控制面板-系統(tǒng)設(shè)置-高級(jí)設(shè)置-環(huán)境變量-系統(tǒng)變量 添加python的安裝路徑一般

C:\Users\sherry.peng\AppData\Local\Programs\Python\Python39\Scripts
C:\Users\sherry.peng\AppData\Local\Programs\Python\Python39

三、打包命令說(shuō)明

pyinstaller [參數(shù)] your_script.py
pyinstaller -F -w -i xxx.ico xxx.py -p x:\...\site_packages

常用參數(shù)說(shuō)明:

參數(shù)含義
-F 或 --onefile將程序打包為 單個(gè) EXE 文件,便于分發(fā)。
-D 或 --onedir生成一個(gè)包含多個(gè)依賴文件的目錄(默認(rèn)選項(xiàng))。
-w 或 --windowed不顯示控制臺(tái)窗口(適用于 GUI 程序)。
-c 或 --console顯示控制臺(tái)窗口(默認(rèn))。
–noconsole關(guān)閉顯示控制臺(tái)窗口。
-i --icon=mxicon.ico添加xxx.ico圖標(biāo)
-p添加環(huán)境site-packages文件夾絕對(duì)路徑
--add-data="C:\Users\sherry.peng\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyecharts;pyecharts"

1. 單個(gè) .py打包成exe(一般)

Pyinstaller -F xxxxx.py

運(yùn)行后會(huì)生成一個(gè)dist文件夾,文件夾內(nèi)就是需要的exe文件

2.配套其他格式文件打包到exe

pyinstaller -w -F  xxx.py -i xxx.ico

2.1 添加圖標(biāo)

pyinstaller -F xxx.py -i xxx.ico

Pyinstaller -F xxxxx.py --icon=mxicon.ico

在工程里寫一個(gè)打包的.py,執(zhí)行可以得到build 和dist 文件夾,dist文件夾里就只有exe

2.2 取消命令行窗口

pyinstaller -F -w xxx.py -i xxx.ico
pyinstaller -F mycode.py --noconsole

2.3 配套其他格式文件(.txt .jpg等等)

方法1:.spec文件

1.pycharm中運(yùn)行.py后生成同名.spec文件
或者命令行實(shí)現(xiàn):進(jìn)入項(xiàng)目根目錄、運(yùn)行得到spec文件

cd ...\project  (pathex)
pyi-makespec xxx.py

2.修改spec文件,添加其他格式文件到 datas
這里面是放非.py文件,這里是以元組的形式,
(“文件夾的絕對(duì)路徑”,“文件夾名”)
注意這里不是寫具體的文件名,而是文件夾
或者通過(guò)參數(shù)添加

--add-data="...xxxxxxxxx\pyecharts;pyecharts"

3.執(zhí)行指令打包.spec

pyinstaller -F -w -i xxx.ico xxx.spec

dist/xxx/xxx.exe
運(yùn)行后會(huì)得到一個(gè)dist文件夾,文件夾里面又一個(gè)以xxx命名的文件夾,在xxx文件夾里面找到exe即可

方法2: 直接運(yùn)行dist+data文件夾

將存放了非py文件的data文件移動(dòng)到文件夾下即可

注意:因?yàn)樯婕暗椒莗y文件,所以在py文件編寫的時(shí)候,涉及到引用這些非py文件時(shí),需要對(duì)文件的根目錄進(jìn)行獲?。?/p>

一般是先自動(dòng)獲取得到當(dāng)前exe的根目錄dirfile;

然后通過(guò)字符串拼接來(lái)得到非py文件的具體文件夾:dirfile + “\data\非py文件名”

3. 多個(gè).py打包成exe

方法1: pyinstaller直接運(yùn)行得到

pyinstaller -w -i data\\fa.ico firstUI_logic.py firstUI.py getFeathers.py nms.py operateUI.py operateUI_logic.py  -p D:\softwares_install\Anaconda3\envs\Train\Lib\site-packages

pyinstaller 所有需要打包的py文件 -p 環(huán)境site-packages絕對(duì)路徑

注意:py文件的路徑需要以第一個(gè)py文件為準(zhǔn)
運(yùn)行后會(huì)得到dist,在dist里面的firstUI_logic文件夾中找到exe文件即可

方法2:spec運(yùn)行得到

sepc同 2.3 所述

要在第一行,也就是a = Analysis([xxx.py’])這里面添加你的所有的.py文件,
注意是所有的而且只能是.py文件,第一個(gè)是代碼你的入口文件。
另外假如.py文件不是與你的主入口文件main.py文件在同一個(gè)目錄下,那么該文件要寫絕對(duì)路徑。

4. exe、依賴庫(kù)打包到文件夾

有些第三方的庫(kù)不能打包到exe,例如Pyecharts(有的環(huán)境目錄地址單引號(hào)他就一直報(bào)錯(cuò))

Pyinstaller -F HeadingAnalysisTool.py --add-data="C:\Users\sherry.peng\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyecharts;pyecharts"  (好像引用庫(kù)文件沒(méi)有成功)

一般打包成文件夾,再?gòu)?fù)制相關(guān)庫(kù)到文件夾,用-D不用-F

Pyinstaller -D HeadingAnalysisTool.py 

四、打包命令輸入方法

方法1:cmd

文件夾地址欄輸入cmd進(jìn)入命令窗口,輸出指令打包py文件,一小會(huì)兒,不到1min打包成功,在dist文件夾可見(jiàn)exe

方法2:pychram-terminal

在pychram-terminal輸入打包指令

方法3:新建.py

在工程里寫一個(gè)打包的.py,執(zhí)行可以得到build 和dist 文件夾,dist文件夾里就只有exe

import os
if __name__ == '__main__':
    from PyInstaller.__main__ import run
    opts = ['HeadingAnalysis.py', '-w', '-F', '--icon=mxicon.ico']
    run(opts)

五、 例如:項(xiàng)目ToolSet

1.一般的.py,沒(méi)有什么特殊的依賴庫(kù),直接打包成單個(gè)exe

Pyinstaller -F normal.py

2.有些第三方的庫(kù),不能打包到exe。例如,pyecharts。一般是,打包的時(shí)候,添加一下依賴庫(kù)的路徑。但是,這個(gè)路徑?jīng)]有生效,現(xiàn)在是把pyecharts的依賴庫(kù)文件夾和exe放到一個(gè)目錄下就可以了。

Pyinstaller -F normal_pyecharts.py --add-data="C:\Users\sherry.peng\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyecharts;pyecharts"

3.除了.py,還依賴其他庫(kù),其他格式文件。例如ToolSet.py要調(diào)用其他IMU.exe,為了方便替換,第一次可以打包成文件夾,手動(dòng)添加依賴庫(kù)、依賴的其他文件。后續(xù)可以直接在文件夾里替換exe。有時(shí)候不想要命令行窗口出現(xiàn),用 --noconsole

Pyinstaller -D ToolSet.py 
Pyinstaller -F ToolSet.py --noconsole

六、調(diào)試

6.1.盡量使用from xxx import xxx,而不是直接import xxx

在編寫時(shí),盡量使用from xxx import xxx,而不是直接import xxx,然后通過(guò)xxx.xxx來(lái)使用。比如from cv2 import imread,和import cv2,前者只是導(dǎo)入了imread,而后者直接復(fù)制了cv2,導(dǎo)致后續(xù)打包的exe過(guò)大

6.2.保留了命令行窗口,可以看到有什么異常進(jìn)而進(jìn)行修改

根據(jù)以往的經(jīng)驗(yàn)一般是使用【+移動(dòng)data文件夾+保留命令行窗口】方法來(lái)進(jìn)行打包,成功率高,且通過(guò)命令行來(lái)進(jìn)行exe運(yùn)行,可以看到有什么異常進(jìn)而進(jìn)行修改

pyinstaller  -i data\\fa.ico firstUI_logic.py firstUI.py getFeathers.py nms.py operateUI.py operateUI_logic.py  -p D:\softwares_install\Anaconda3\envs\Train\Lib\site-packages

注意沒(méi)有-w,保留了命令行窗口

6.3 ModuleNotFoundError可能缺少相應(yīng)的pyd文件

有時(shí)候可能會(huì)出現(xiàn)導(dǎo)入包錯(cuò)誤,可能在打包好的文件夾中對(duì)應(yīng)的包位置缺少了相應(yīng)的pyd文件,比如pyinstaller打包執(zhí)行exe出現(xiàn)
“ModuleNotFoundError: No module named scipy.spatial.transform._rotation_group”

上述其實(shí)就是說(shuō)明在打包完成的dist文件夾中的文件夾中對(duì)應(yīng)的庫(kù)中缺少pyd文件,需要補(bǔ)充上
這個(gè)是因?yàn)榇虬蟮牡谌綆?kù)中缺少了pyd文件
具體的解決方法:
去環(huán)境下找到相應(yīng)的py文件,將py編譯成pyd文件,然后將pyd文件復(fù)制到dist相應(yīng)的第三庫(kù)目錄下即可
1.安裝easycython庫(kù)

pip install easycython

test.py

def test():
    print("調(diào)用成功")

main.py

import test
test.test()

test.py文件重命名為:test.pyx
終端運(yùn)行命令

easycython *.pyx

重命名pyd文件,刪除:cp36-win_amd64.

運(yùn)行代碼,調(diào)用成功:

python main.py

到此這篇關(guān)于python代碼打包到exe的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)python 打包到exe內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊

    python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python Word實(shí)現(xiàn)批量替換文本并生成副本

    Python Word實(shí)現(xiàn)批量替換文本并生成副本

    這篇文章主要為大家詳細(xì)介紹了Python Word如何實(shí)現(xiàn)批量替換文本并生成副本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • 使用jupyter notebook將文件保存為Markdown,HTML等文件格式

    使用jupyter notebook將文件保存為Markdown,HTML等文件格式

    這篇文章主要介紹了使用jupyter notebook將文件保存為Markdown,HTML等文件格式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python3字符串操作總結(jié)

    python3字符串操作總結(jié)

    這篇文章主要介紹了python3字符串操作總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐

    OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐

    本文主要介紹了OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Python PIL實(shí)現(xiàn)GIF壓縮工具

    Python PIL實(shí)現(xiàn)GIF壓縮工具

    本文將結(jié)合wxPython的GUI框架和PIL(Python Imaging Library)的圖像處理能力編寫一個(gè)GIF壓縮工具,并提供了兩種壓縮方式,感興趣的小伙伴可以了解下
    2024-10-10
  • python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法

    python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法

    這篇文章主要介紹了python中時(shí)間、日期、時(shí)間戳的轉(zhuǎn)換的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 基于Python共軛梯度法與最速下降法之間的對(duì)比

    基于Python共軛梯度法與最速下降法之間的對(duì)比

    這篇文章主要介紹了基于Python共軛梯度法與最速下降法之間的對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 淺談一下關(guān)于Python對(duì)XML的解析

    淺談一下關(guān)于Python對(duì)XML的解析

    這篇文章主要介紹了淺談一下關(guān)于Python對(duì)XML的解析,XML是一套定義語(yǔ)義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對(duì)這些部件加以標(biāo)識(shí),需要的朋友可以參考下
    2023-05-05
  • python函數(shù)局部變量用法實(shí)例分析

    python函數(shù)局部變量用法實(shí)例分析

    這篇文章主要介紹了python函數(shù)局部變量用法,較為詳細(xì)的分析了Python局部變量的原理與使用技巧,并對(duì)比分析了局部變量與global全局變量的用法區(qū)別,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

和龙市| 富源县| 亳州市| 兴义市| 新巴尔虎左旗| 镇宁| 宁强县| 棋牌| 镇江市| 丹东市| 镇沅| 万宁市| 怀宁县| 乐东| 城口县| 启东市| 泰安市| 龙井市| 红桥区| 阿坝县| 永泰县| 香河县| 隆林| 凤冈县| 公安县| 和田县| 桃江县| 墨竹工卡县| 辽宁省| 长垣县| 玛纳斯县| 雅江县| 文安县| 益阳市| 鲁甸县| 绥棱县| 巴中市| 延寿县| 红安县| 封开县| 金昌市|