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

【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe

這篇具有很好參考價值的文章主要介紹了【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、為什么要用conda虛擬環(huán)境

第一點是,pyinstaller打包需要指定程序中使用的庫的路徑,新手在這一點上很容易出現(xiàn)問題,導(dǎo)致打包后的exe程序執(zhí)行的時候顯示缺少模塊。這個問題可能并不能通過簡單地指定路徑來解決。

第二點就是使用虛擬環(huán)境本身的好處了:

  • 可以創(chuàng)建多個不同的Python環(huán)境,每個環(huán)境可以安裝不同版本的Python和不同的包,避免了包之間的沖突和依賴問題。
  • 可以方便地切換和管理不同的Python環(huán)境,只需要使用activate和deactivate命令即可。
  • 可以使用conda命令來安裝和更新包,不需要使用pip或其他工具。conda還可以安裝一些非Python的包,比如gcc,nodejs,cuda等。
  • 可以使用conda-forge等第三方源來獲取更多的包,或者使用自定義的源來安裝私有的包。
  • 可以使用conda export和conda env create命令來導(dǎo)出和導(dǎo)入環(huán)境配置文件,方便在不同的機器上復(fù)制相同的環(huán)境。

當你進入一個conda虛擬環(huán)境后(conda activate xxx),可以使用conda installpip install安裝不同的包,因為某些包可能在conda源中沒有。

虛擬環(huán)境的創(chuàng)建和使用很簡單,不是本文的主題,這里不贅述了。

二、pyinstaller用法

PyInstaller 是一個用于將 Python 程序打包成可執(zhí)行文件的強大工具。它允許你將你的 Python 代碼、依賴項和解釋器一起打包成一個獨立的可執(zhí)行文件,無需用戶安裝 Python 或其他依賴項。

2.1 安裝 PyInstaller

首先進入項目所在的虛擬環(huán)境:

打開Anaconda Powershell Prompt(為什么不直接用Powershell?可以,但不建議,你可以從我本專欄前面的文章找到答案),進入項目所在虛擬環(huán)境:

conda activate yt_dlp_env

安裝pyinstaller:

conda install pyinstaller

【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe,python,python,conda,開發(fā)語言,原力計劃

現(xiàn)在,先看第三節(jié):實際使用示例,然后再回來看第二節(jié)。

2.2 基本用法

打包一個 Python 腳本

假設(shè)你有一個名為 my_script.py 的 Python 腳本,想將其打包成可執(zhí)行文件。你可以在命令行中執(zhí)行以下命令:

pyinstaller my_script.py

這將在當前目錄下創(chuàng)建一個 dist 文件夾,其中包含了可執(zhí)行文件。你可以在 dist 文件夾中找到 my_script(或 my_script.exe,取決于你的操作系統(tǒng))可執(zhí)行文件。

2.21 打包一個 Python 項目

如果你的項目包含多個文件,你可以將整個項目目錄作為參數(shù)傳遞給 PyInstaller。例如:

pyinstaller my_project_directory

這將在 dist 文件夾中創(chuàng)建一個可執(zhí)行文件,其中包含了整個項目的所有文件和依賴項。

2.22 打包選項

PyInstaller 支持許多選項,以便你根據(jù)需要自定義打包過程。一些常用的選項包括:

  1. 打包選項:

    • -F--onefile生成單個可執(zhí)行文件。
    • -D--onedir:生成一個包含多個文件的目錄。
    • -w--windowed:創(chuàng)建一個窗口應(yīng)用程序,沒有控制臺窗口。
    • -c--console:創(chuàng)建一個帶有控制臺窗口的命令行應(yīng)用程序。
    • -m--name:指定生成的可執(zhí)行文件的名稱。
    • --add-data:添加額外的數(shù)據(jù)文件到可執(zhí)行文件中。
  2. 導(dǎo)入選項:

    • -p--paths添加搜索Python模塊的路徑。
    • --hidden-import指定需要手動導(dǎo)入但不在源代碼中明確導(dǎo)入的模塊。
  3. 打包配置選項:

    • --name指定生成的可執(zhí)行文件的名稱。
    • --icon指定可執(zhí)行文件的圖標文件。
    • --version-file:指定版本信息文件。
    • --upx-dir:指定UPX可執(zhí)行文件壓縮工具的目錄。
  4. 調(diào)試選項:

    • --debug生成帶有調(diào)試信息的可執(zhí)行文件
  5. 優(yōu)化選項:

    • -O--optimize:使用優(yōu)化編譯Python文件。
    • --noconfirm:禁用優(yōu)化編譯確認提示。
  6. 其他選項:

    • -h--help:顯示幫助信息。
    • --clean:清理臨時文件。
    • --noconfirm:在覆蓋現(xiàn)有輸出目錄時不進行確認。
    • --noconsole:不顯示控制臺
    • --python指定python解釋器的路徑。

這只是一些常用的PyInstaller參數(shù),實際上有更多選項可用于更復(fù)雜的定制。你可以使用pyinstaller --help命令來查看完整的參數(shù)列表和說明。

例如,要生成一個單獨的可執(zhí)行文件并指定其名稱,你可以使用以下命令:

pyinstaller -F -n my_app my_script.py

這將生成一個名為 my_app 的單獨可執(zhí)行文件。

2.3 打包依賴項

當使用PyInstaller來打包Python應(yīng)用程序時,你可以使用一系列重要的選項來設(shè)置依賴項和配置生成的可執(zhí)行文件。以下是一些關(guān)鍵的依賴設(shè)置選項:

  1. --hidden-import:通過該選項,你可以指定需要手動導(dǎo)入但不在源代碼中明確導(dǎo)入的模塊。這對于確保PyInstaller能夠識別和包含所有依賴項非常有用。
pyinstaller --hidden-import module_name script.py
  1. --exclude-module:使用該選項可以排除特定模塊,不包含在生成的可執(zhí)行文件中。
pyinstaller --exclude-module module_name script.py
  1. --add-binary:允許將外部二進制文件添加到生成的可執(zhí)行文件中,這對于包含一些外部庫非常有用。
pyinstaller --add-binary "path/to/binary;destination/folder" script.py
  1. --add-data:類似于--add-binary,但用于添加外部數(shù)據(jù)文件到生成的可執(zhí)行文件中。
pyinstaller --add-data "path/to/data;destination/folder" script.py
  1. --paths:通過指定額外的模塊搜索路徑,可以確保PyInstaller能夠找到依賴項的位置。
pyinstaller --paths path/to/modules script.py

你也可以手動????

2.31 導(dǎo)出依賴項列表

你可以使用以下命令導(dǎo)出項目的依賴項列表:

pyinstaller --name=my_app --onefile my_script.py --path=/path/to/dependencies

這將創(chuàng)建一個 my_app.spec 文件,其中包含了項目的依賴項列表。

2.32 配置依賴項

編輯 my_app.spec 文件并添加依賴項的路徑,如下所示:

# ...
a = Analysis(['my_script.py'],
             pathex=['/path/to/project'],
             binaries=[],
             datas=[],
             ...
             pathex=['/path/to/dependencies'],  # 添加依賴項路徑
             ...
             )
# ...

然后,使用以下命令來根據(jù)修改后的 my_app.spec 文件打包項目:

pyinstaller my_app.spec

這將使用指定的依賴項路徑打包項目。

2.4 自定義打包選項

如果你需要更多的自定義選項,可以編輯 my_app.spec 文件并進行更詳細的配置。你可以設(shè)置各種選項,包括文件和目錄的排除和包含、運行時選項等。詳細信息可以在 PyInstaller 的官方文檔中找到。

2.5 打包完成后的文件

成功打包后,你將在 dist 目錄中找到生成的可執(zhí)行文件。這個文件可以在沒有安裝 Python 解釋器或其他依賴項的情況下在目標系統(tǒng)上運行。

2.6 注意事項

  • 打包大小:可執(zhí)行文件的大小可能會比原始 Python 代碼大很多,因為它包含了 Python 解釋器和依賴項。你可以通過精簡依賴項來減小可執(zhí)行文件的大小。
  • 跨平臺問題:PyInstaller 支持在不同的操作系統(tǒng)上打包應(yīng)用程序,但需要在相應(yīng)的操作系統(tǒng)上運行 PyInstaller。

三、打包示例

打包如下程序:
【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe,python,python,conda,開發(fā)語言,原力計劃


(1)打開Anaconda Powershell Prompt,進入項目所在虛擬環(huán)境:

conda activate yt_dlp_env

(2)進入程序所在目錄:

cd D:\Python_Study\VideoDownload

(3)打包:

pyinstaller -F --paths=E:\anaconda3\envs\yt_dlp_env\Lib\site-packages --python=E:\anaconda3\envs\yt_dlp_env\python.exe    --icon=wx2.ico --name=Downloader DLP_GUI_Perfect.py

參數(shù)說明:

  1. -F:打包成一個可執(zhí)行文件;
  2. -- path:指定python模塊的搜索路徑;
  3. --python:指定python解釋器路徑;
  4. --icon:可執(zhí)行文件的圖標
  5. --name:可執(zhí)行文件名稱

(3)在文件所在目錄,打開dist文件夾,即可看到打包好的exe文件;
【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe,python,python,conda,開發(fā)語言,原力計劃

【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe,python,python,conda,開發(fā)語言,原力計劃

(4)直接打開即可運行,發(fā)送給別人也是如此(跨平臺應(yīng)該不行)。

【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe,python,python,conda,開發(fā)語言,原力計劃


打包好的exe程序運行時是會打開一個控制臺窗口的,有時候是不需要的,比如你是一個GUI的程序。

在使用PyInstaller打包時,你可以使用--noconsole選項來告訴PyInstaller生成一個窗口應(yīng)用程序而不是控制臺應(yīng)用程序:

pyinstaller -F --paths=E:\anaconda3\envs\yt_dlp_env\Lib\site-packages --python=E:\anaconda3\envs\yt_dlp_env\python.exe  --noconsole  --icon=wx2.ico --name=Downloader DLP_GUI_Perfect.py

但不建議第一次就這樣打包,留著控制臺,可以查看程序運行報錯情況,因為依賴很多的情況下,可能存在依賴沒完全指定的情況。


除了依賴問題,還有pyinstaller本身的問題,打包后,可能會改變一些程序的運行邏輯或者某個過程的編碼、或者資源訪問方式等等。不僅需要注意打包參數(shù)的設(shè)置,可能還需要修改源代碼。

因此,需要多次調(diào)試才能打包好一個程序(復(fù)雜一些的),可以使用--debug參數(shù)打包,進行調(diào)試。文章來源地址http://www.zghlxwxcb.cn/news/detail-704872.html

到了這里,關(guān)于【Python】conda虛擬環(huán)境下使用pyinstaller打包程序為exe的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • pycharm使用conda創(chuàng)建的虛擬環(huán)境時找不到python.exe

    pycharm使用conda創(chuàng)建的虛擬環(huán)境時找不到python.exe

    問題:在創(chuàng)建的虛擬環(huán)境中沒有找到python.exe文件? 解決方案:可能是condaba版本不一樣,新版本選不到.exe文件 在anaconda軟件的安裝目錄下選擇condabin——conda.bat 然后加載環(huán)境,就可以選擇創(chuàng)建的虛擬環(huán)境了 ?

    2024年02月04日
    瀏覽(22)
  • 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日
    瀏覽(24)
  • Python PyInstaller將程序打包為exe程序

    Python PyInstaller將程序打包為exe程序

    1.執(zhí)行 pip install pyinstaller,結(jié)果如下圖? 2.然后執(zhí)行 pyinstaller -F -w Hello.py 執(zhí)行完之后會產(chǎn)生兩個目錄 在dist目錄下就是可執(zhí)行文件,雙擊即可看到效果

    2024年02月04日
    瀏覽(34)
  • python打包Windows.exe程序(pyinstaller)

    python打包Windows.exe程序(pyinstaller) pip install pyinstaller 使用pip命令來安裝pyinstaller模塊。 -F: pyinstaller -F hello.py -p hello2.py -D: pyinstaller -D hello.py -p hello2.py -i : pyinstaller -i tb.ico -F hello.py -p hello2.py 其中前一個文件hello是主文件,后一個文件是會被調(diào)用到的文件,可以有多個。

    2024年02月13日
    瀏覽(29)
  • 【python】使用pipenv創(chuàng)建虛擬環(huán)境進行打包

    【python】使用pipenv創(chuàng)建虛擬環(huán)境進行打包

    起因: 本地安裝的模塊太多,使用pyinstaller打包,會把許多無關(guān)模塊打包進去,程序特別大。 如果能夠創(chuàng)建一個虛擬的python環(huán)境,只安裝要打包程序的依賴包就好了。 pipenv恰好能解決這個問題,pipenv安裝的依賴包會保存至項目虛擬環(huán)境目錄下,不會污染系統(tǒng)全局環(huán)境。 當然pip

    2024年02月04日
    瀏覽(22)
  • Conda pack 環(huán)境打包 | Python

    工作中涉及到模型固化部署工作,需要將本地的環(huán)境移植到新的離線的機器上。conda 常用來執(zhí)行虛擬環(huán)境配置和包管理工作,可以使用conda-pack 進行conda 環(huán)境打包和分發(fā)。(同系統(tǒng)間才能移植復(fù)制,跨系統(tǒng)容易報錯) (1)安裝 即將構(gòu)建環(huán)境的操作系統(tǒng)必須與目標的操作系統(tǒng)

    2024年02月16日
    瀏覽(24)
  • python中pyinstaller打包帶資源的程序-pgzreo

    本文使用創(chuàng)作助手。 PyInstaller是一個用于將Python腳本打包成可執(zhí)行文件的工具。它可以將Python腳本、模塊和依賴庫打包成獨立的可執(zhí)行文件,方便在沒有安裝Python解釋器的環(huán)境中運行。下面是PyInstaller的詳細用法: 安裝PyInstaller: 使用pip安裝: pip install pyinstaller 使用conda安裝

    2024年04月11日
    瀏覽(23)
  • PyInstaller 完美打包 Python 腳本,輸出結(jié)構(gòu)清晰、便于二次編輯的打包程序

    PyInstaller 完美打包 Python 腳本,輸出結(jié)構(gòu)清晰、便于二次編輯的打包程序

    如果我要寫一個 Python 項目,打包成 exe 運行(方便在沒有 Python 的電腦上使用),我需要打包出的根目錄結(jié)構(gòu)美觀,沒有多余的、雜亂的依賴文件在那里礙眼,而且需要在發(fā)現(xiàn) bug 時,我還需要能夠修改里面的代碼后,無需再次打包,就能正常運行,該怎么做呢? 就以一個

    2024年02月07日
    瀏覽(17)
  • Pycharm使用Anaconda虛擬環(huán)境找不到Python.exe:報錯:Conda executable is not found

    Pycharm使用Anaconda虛擬環(huán)境找不到Python.exe:報錯:Conda executable is not found

    很多同學在初始配置虛擬環(huán)境的時候都會用到Anaconda(Conda)系列,然而,使用Pycharm配置python環(huán)境的時候卻找不到虛擬環(huán)境里的python.exe文件,報錯:Conda executable is not found,具體見下圖 將虛擬環(huán)境加入到環(huán)境變量里(不解?) 找到conda.exe(實踐后發(fā)現(xiàn)anaconda不認這個exe文件) 直接

    2024年02月13日
    瀏覽(32)
  • python pyinstaller spec文件 打包多個python文件為exe應(yīng)用程序

    python pyinstaller spec文件 打包多個python文件為exe應(yīng)用程序

    使用pyinstaller 單個文件打包 使用pyinstaller 多個文件打包 這里先看下項目文件結(jié)構(gòu): 編輯PaserAdapter_Test.spec文件 執(zhí)行打包命令(可指定輸出程序存放的路徑) 假設(shè)使用默認路徑 指定程序存放路徑 如果在windows系統(tǒng)打包,則dist下會有對應(yīng)的.exe程序,此時可脫離其他源文件獨自

    2024年02月16日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包