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

pyinstaller打包exe程序的步驟和添加依賴文件的實現(xiàn)

 更新時間:2022年02月10日 09:01:17   作者:Spider.Li  
這篇文章主要介紹了pyinstaller打包exe程序的步驟和添加依賴文件的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

pyinstaller打包exe程序和添加依賴文件

或許我們并不是專業(yè)的程序猿,但是卻可以通過python來提高我們的工作效率,減少加班時間,讓代碼替我們完成一些重復(fù)的工作,節(jié)省下來的時間去泡個妹子,牽牽小手不香嗎

話不多說,馬上進(jìn)入本次pyinstaller打包工具知識分享,隔壁家小東女朋友叫我待會一起去吃飯呢。。。。。

1、安裝pyinstaller庫

命令行輸入以下命令,如圖顯示是我已經(jīng)裝過了:

pip install pyinstaller

在這里插入圖片描述

2、pyinstaller的打包機制

python腳本的運行離不開python解釋器,把腳本打包成exe可執(zhí)行文件時,pyinstaller會將python解釋器和腳本一起打包,同時把需要用到的第三方庫和依賴包一并打入到exe文件中,下面我就以最近寫的一款裝包工具為例,簡述一下我的打包過程。

3、打包命令

pyinstaller-F [main.py]

這條命令指的是將以main.py為主程序的腳本打包為單獨一個exe文件,-F參數(shù)表示覆蓋打包,無論打多少次包都會是最新的。你可以選擇cmd命令行進(jìn)行操作,也可以使用pycharm的Terminal端口進(jìn)行,我使用的是Terminal。如圖。

在這里插入圖片描述

運行完畢后,會看到build,dist,和.spec文件生成。dist里面的exe文件就是剛剛生成的可執(zhí)行文件,這樣簡單快捷的打包就完成啦。

4、添加導(dǎo)包外的一些依賴文件

像第3步這種情況是程序中不需要依賴外部文件的,假如程序邏輯中需要依賴一些文件,但pyinstaller并不會將自動把這些文件幫你打包進(jìn)去,比如,一個第三方庫中有一段程序需要去使用public.xml文件,當(dāng)打包完成后,這個文件是不會自動打包進(jìn)去的,那該怎么辦呢?

在這里插入圖片描述

別急,pyinstaller為我們提供了參數(shù)配置文件,也就是剛剛生成的.spec文件,我們只需要再datas中配置需要打包的文件即可,比如

datas=[('D:\\python3.6.5\\Lib\\site-packages\\androguard\\core\\resources\\public.xml','androguard\\core\\resources')

表示的是將public.xml文件打包到androguard\core\resources目錄下

在這里插入圖片描述

其他的一些參數(shù)配置請自行百度,如有時需要讓pyinstaller不打包某些用不到的模塊,可通過在excludes=[]中添加此模塊實現(xiàn),如excludes=[‘xxx’]。

5、.spec方式打包

這樣修改后我們就可以使用命令進(jìn)行再次打包啦,打包完成后打開軟件,發(fā)現(xiàn)需要用到依賴文件已經(jīng)成功打包,相關(guān)功能就正常啦。

pyinstaller -D xxx.spec 

6、pyinstaller常用參數(shù)

另外,騷強也是整理了一下pyinstaller的常用參數(shù),有興趣可以試一試哦,坑已經(jīng)準(zhǔn)備好了,各位勇士快來踩一踩

  • -F, –onefile 打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
  • -D, –onedir 打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個人比較推薦這樣,代碼易于維護
  • -K, –tk 在部署時包含 TCL/TK
  • -a, –ascii 不包含編碼.在支持Unicode的python版本上默認(rèn)包含所有的編碼.
  • -d, –debug 產(chǎn)生debug版本的可執(zhí)行文件
  • -w,–windowed,–noconsole 使用Windows子系統(tǒng)執(zhí)行.當(dāng)程序啟動的時候不會打開命令行(只對Windows有效)
  • -c,–nowindowed,–console使用控制臺子系統(tǒng)執(zhí)行(默認(rèn))(只對Windows有效)
pyinstaller -c ?xxxx.py
pyinstaller xxxx.py --console
  • -s,–strip 可執(zhí)行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用.
  • -X, –upx 如果有UPX安裝(執(zhí)行Configure.py時檢測),會壓縮執(zhí)行文件(Windows系統(tǒng)中的DLL也會)(參見note)
  • -o DIR, –out=DIR 指定spec文件的生成目錄,如果沒有指定,而且當(dāng)前目錄是PyInstaller的根目錄,會自動創(chuàng)建一個用于輸出(spec和生成的可執(zhí)行文件)的目錄.如果沒有指定,而當(dāng)前目錄不是PyInstaller的根目錄,則會輸出到當(dāng)前的目錄下.
  • -p DIR, –path=DIR 設(shè)置導(dǎo)入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數(shù)來設(shè)置多個導(dǎo)入路徑,讓pyinstaller自己去找程序需要的資源
  • –icon= 將file.ico添加為可執(zhí)行文件的資源(只對Windows系統(tǒng)有效),改變程序的圖標(biāo)  pyinstaller -i  ico路徑 xxxxx.py
  • –icon= 將file.exe的第n個圖標(biāo)添加為可執(zhí)行文件的資源(只對Windows系統(tǒng)有效)
  • -v FILE, –version=FILE 將verfile作為可執(zhí)行文件的版本資源(只對Windows系統(tǒng)有效)
  • -n NAME, –name=NAME 可選的項目(產(chǎn)生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字

pyinstall打包時的依賴問題

前幾天寫了一個人臉表情分析的小程序,想用pyinstall打包成一個可以移植的小軟件。因為之前用過pyinstall,所以這次使用同樣的方法對我的程序進(jìn)行打包:

【pyinstaller -F --icon=圖標(biāo).ico 要打包的文件.py --noconsole】

其中【-F】參數(shù)表示打包后生成單一的文件。pyinstall還有其他的一些參數(shù)可供選擇:

What to generate:

  • -F, --onefile

create a single file deployment

  • -D, --onedir

create a single directory deployment (default)

  • -o DIR, --out=DIR

create the spec file in directory. If not specified, and the current directory is Installer’s root directory, an output subdirectory will be created. Otherwise the current directory is used.

  • -n NAME, --name=NAME

optional name to assign to the project (from which the spec file name is generated). If omitted, the basename of the (first) script is used.

但是當(dāng)我使用之前同樣的方法打包完成后,也生成了一個exe程序,雙擊執(zhí)行的時候,什么也沒有發(fā)生。在pycharm中運行良好的程序,到exe就什么都沒有了,最恐怖的是連報錯都沒有?。?/strong>

這時,可以使用【-C】參數(shù),生成控制臺版本的exe程序。這樣會在【dist】文件夾下生成一個以程序命名的文件夾,在這個文件夾中會有這個exe程序。

我們在控制臺下執(zhí)行這個程序,如果程序無法正常執(zhí)行的話,會輸出錯誤信息:

看來我的錯誤是因為無法打開這個dat文件,我想起來我在程序中用到了這個數(shù)據(jù)文件,可能打包的時候,pyinstall沒有吧這個需要的依賴文件裝進(jìn)exe程序中。

這時一種方法是吧這個dat文件拷貝進(jìn)這個exe所在的文件夾中。

另一種方法就是修改【spec】文件。

打開spec文件,在datas參數(shù)里面添加依賴文件的路徑

然后重新打包這個spec文件:【pyinstall from_video.spec】即可。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python數(shù)據(jù)可視化:餅狀圖的實例講解

    Python數(shù)據(jù)可視化:餅狀圖的實例講解

    今天小編就為大家分享一篇Python數(shù)據(jù)可視化:餅狀圖的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中的時間與日期處理技巧分享

    Python中的時間與日期處理技巧分享

    在Python的世界里,時間也很有個性,格式多種多樣、時區(qū)坑多如山、轉(zhuǎn)換容易讓人頭禿……但別擔(dān)心,今天我們就來聊聊Python中的時間與日期處理,讓你從時間小白變成時間大師,需要的朋友可以參考下
    2025-04-04
  • 讓Django支持Sql Server作后端數(shù)據(jù)庫的方法

    讓Django支持Sql Server作后端數(shù)據(jù)庫的方法

    今天小編就為大家分享一篇讓Django支持Sql Server作后端數(shù)據(jù)庫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 完美解決Pycharm無法導(dǎo)入包的問題 Unresolved reference

    完美解決Pycharm無法導(dǎo)入包的問題 Unresolved reference

    今天小編就為大家分享一篇完美解決Pycharm無法導(dǎo)入包的問題 Unresolved reference,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 一文掌握python中的時間包

    一文掌握python中的時間包

    這篇文章主要介紹了python中的時間包,主要包括datetime時間包,獲取當(dāng)前時間,獲取時間間隔及時間對象轉(zhuǎn)時間字符串的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python代碼調(diào)試的方法集錦

    Python代碼調(diào)試的方法集錦

    程序能一次寫完并正常運行的概率很小,基本不超過1%,總會有各種各樣的bug需要修正,有的bug很簡單,看看錯誤信息就知道,有的bug很復(fù)雜,因此,需要一整套調(diào)試程序的手段來修復(fù)bug,所以本文給大家介紹了Python代碼調(diào)試的方法集錦,需要的朋友可以參考下
    2025-03-03
  • Python Pytorch深度學(xué)習(xí)之核心小結(jié)

    Python Pytorch深度學(xué)習(xí)之核心小結(jié)

    今天小編就為大家分享一篇關(guān)于Pytorch核心小結(jié)的文章,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-10-10
  • 使用python實現(xiàn)md5加密

    使用python實現(xiàn)md5加密

    這篇文章主要介紹了使用python實現(xiàn)md5加密,md5為計算機安全領(lǐng)域廣泛使用的一種散列函數(shù),用于確保信息傳輸完整一致,需要的朋友可以參考下
    2023-04-04
  • Python報錯TypeError: object of type ‘generator‘ has no len ()的解決方法

    Python報錯TypeError: object of type ‘gener

    在Python開發(fā)的復(fù)雜世界中,報錯信息就像神秘的謎題,困擾著開發(fā)者和環(huán)境配置者,其中,TypeError: object of type ‘generator’ has no len()這個報錯,常常在不經(jīng)意間打亂我們的開發(fā)節(jié)奏,本文讓我們一起深入探究這個報錯問題,為Python開發(fā)之路掃除障礙
    2024-10-10
  • Python如何使用Requests下載文件并且顯示進(jìn)度條

    Python如何使用Requests下載文件并且顯示進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了如何使用?Requests?下載文件并且顯示進(jìn)度條,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12

最新評論

德令哈市| 万荣县| 建宁县| 运城市| 沿河| 义乌市| 枣强县| 宣城市| 宿州市| 太康县| 边坝县| 揭阳市| 定日县| 法库县| 宁海县| 邳州市| 深水埗区| 兰坪| 安新县| 盘山县| 沈阳市| 普宁市| 永修县| 昌图县| 东方市| 始兴县| 隆德县| 揭阳市| 松滋市| 辽源市| 广南县| 榆社县| 晋中市| 咸阳市| 武鸣县| 阳高县| 阆中市| 香河县| 韶关市| 延长县| 乌兰察布市|