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

Python 打包工具 Nuitka 入門指南

這篇具有很好參考價(jià)值的文章主要介紹了Python 打包工具 Nuitka 入門指南。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Python 打包工具 Nuitka 入門指南

起因

由于最近用Python寫了一個(gè)跟目標(biāo)檢測(cè)相關(guān)的小工具,如果直接分發(fā)代碼文件一來是不夠優(yōu)雅,二來是對(duì)非計(jì)算機(jī)領(lǐng)域的用戶來說不夠友好,因此我萌生了給小工具打包的想法。

本來我以為這應(yīng)該是一個(gè)輕松而愉快的過程,一行命令一個(gè)回車,然后去摸魚20分鐘,回來就可以收獲到一個(gè)完美打好包的可執(zhí)行文件。然而事情并沒有我想象的那般順利,甚至可以說是困難重重、荊棘叢生。不斷地排查原因查找可能的錯(cuò)誤,最后我花了兩天的時(shí)間才終于打出了一個(gè)可以完美運(yùn)行的可執(zhí)行文件。

因此,我希望這一篇文章可以幫助到也正在為Python程序打包而苦惱的同學(xué)們。

環(huán)境

  • Python 3.9 (CPython)
  • Nuitka 1.5.3

常用選項(xiàng)

通用選項(xiàng)

  • –standalone 使得打包結(jié)果與本地的Python環(huán)境無關(guān),即使得打包結(jié)果具備可移植性。
  • –onefile 使得打包結(jié)果為一個(gè)可執(zhí)行文件,而不是一個(gè)文件夾。

小結(jié):--onefile選項(xiàng)下打出來的包本身就具備可移植性,因此不需要額外加上 --standalone。--onefile 打包結(jié)果像綠色軟件,僅一個(gè)可執(zhí)行文件;--standalone的打包結(jié)果像經(jīng)過安裝的軟件,文件夾下包含運(yùn)行所需要的文件和程序入口。

  • –remove-output 在打包結(jié)束后,清理打包過程中生成的臨時(shí)文件。
  • –enable-plugin= 啟用插件,等號(hào)后跟插件名。在要打包的Python代碼使用了一些特殊的包時(shí),需要啟用插件,Nuitka才能夠正確打包。如:如在代碼中使用了PySide6,就需要加上--enable-plugin=pyside6。具體的插件列表可以使用nuitka --plugin-list來查看。
  • –disable-console 在運(yùn)行打包后的程序時(shí),不會(huì)彈出控制臺(tái),而是直接運(yùn)行GUI程序。

手動(dòng)修復(fù)選項(xiàng)

打包程序往往并不是一次就能夠打包成功的,常常會(huì)出現(xiàn)分析不出一部分的引用關(guān)系,忽略了一些數(shù)據(jù)文件等等情況。在這些情況下,我們需要根據(jù)運(yùn)行程序后顯示的報(bào)錯(cuò)信息,使用下面的選項(xiàng)來打出正確的包。

  • –include-package-data= 包含給定軟件包名稱中的數(shù)據(jù)文件,等號(hào)后軟件包名稱。有的時(shí)候Nuitka并不能正確分析出一些Python軟件包所需要使用的數(shù)據(jù)文件,在運(yùn)行程序時(shí)提示FileNotFoundError等錯(cuò)誤,此時(shí)就需要使用該選項(xiàng)。如:--include-package-data=ultralytics
  • –include-data-files= 按文件名包含數(shù)據(jù)文件,等號(hào)后的格式為<SRC=DEST>。SRC指的是文件夾的路徑,DEST指的是文件夾相對(duì)于打包結(jié)果的路徑,其中DEST只能使用相對(duì)路徑。如:--include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt
  • –include-data-dir= 包含文件夾中的數(shù)據(jù)文件,等號(hào)后的格式為<SRC=DEST>。使用方法與--include-data-files=相同。

Windows 獨(dú)占選項(xiàng)

  • –windows-icon-from-ico= 為打包后的可執(zhí)行文件添加圖標(biāo),等號(hào)后跟圖標(biāo)文件路徑。

值得注意的是,圖標(biāo)的格式也可以不是.ico,只需要安裝過imageio包,Nuitka便可以自動(dòng)將圖片轉(zhuǎn)換為.ico格式。

MacOS獨(dú)占選項(xiàng)

  • –macos-create-app-bundle 創(chuàng)建應(yīng)用程序(.app),而不是Unix可執(zhí)行文件。(截至 Nuitka 1.5.3 還是實(shí)驗(yàn)性功能,可用性較低)
  • –macos-app-icon= 設(shè)置應(yīng)用程序圖標(biāo),等號(hào)后跟圖標(biāo)文件路徑。同樣,圖標(biāo)的格式也可以不是.icns,只需要安裝過imageio包,Nuitka便可以自動(dòng)將圖片轉(zhuǎn)換為.icns格式。

無需關(guān)注的選項(xiàng)

  • –follow-imports 作用是在打包過程中分析程序的引用關(guān)系,將Python主程序引用的包也一并打包。其實(shí)這件事本身很重要,畢竟在大多數(shù)情況下應(yīng)該沒人希望Nuitka只打包一個(gè)Python主程序文件。但是在 --standalone 和 --onefile 下,該選項(xiàng)是強(qiáng)制啟用的,因此不需要額外加上。
  • –nofollow-import-to= 作用是在打包過程中忽略指定的Python軟件包。作為入門指南,我不建議使用該選項(xiàng),因?yàn)椴划?dāng)使用會(huì)引入一些難以解決的問題。

實(shí)用命令

python -m nuitka --help # 查看 Nuitka 幫助手冊(cè)
python -m nuitka --plugin-list # 查看 Nuitka 插件列表

舉例

python -m nuitka --standalone --remove-output {your_python_program_name}.py
python -m nuitka --onefile --remove-output {your_python_program_name}.py

python -m nuitka --standalone --disable-console --enable-plugin=pyside6 --remove-output {your_python_GUI_program_name}.py
python -m nuitka --macos-create-app-bundle --disable-console --enable-plugin=pyside6 --remove-output {your_python_GUI_program_name}.py

注意事項(xiàng)

  1. 官方文檔中提到,相對(duì)于直接使用nuitka命令,python -m nuitka是更好的選擇。

Avoid running the nuitka binary, doing python -m nuitka will make a 100% sure you are using what you think you are. Using the wrong Python will make it give you SyntaxError for good code or ImportError for installed modules. That is happening, when you run Nuitka with Python2 on Python3 code and vice versa. By explicitly calling the same Python interpreter binary, you avoid that issue entirely.

  1. 用于執(zhí)行Nuitka的Python解釋器最好是CPython,即Python解釋器的標(biāo)準(zhǔn)實(shí)現(xiàn)。使用Apple Python等Python解釋器部分功能將受限。

It has to be CPython, Anaconda Python.

You need the standard Python implementation, called “CPython”, to execute Nuitka, because it is closely tied to implementation details of it.

優(yōu)點(diǎn)

  1. 對(duì)動(dòng)態(tài)鏈接庫(kù)的分析相對(duì)準(zhǔn)確
  2. 打包生成的軟件占用空間較小

缺點(diǎn)

  1. 打包時(shí)間相對(duì)較長(zhǎng)
  2. 有商業(yè)版本,需要收費(fèi)

尾聲

如果您覺得我寫的還不錯(cuò)的話,希望您可以點(diǎn)個(gè)贊,點(diǎn)個(gè)收藏,您的支持對(duì)我來說非常重要!

我熱烈歡迎您轉(zhuǎn)載我的這篇文章,但要求您標(biāo)明作者與出處。

如果文章中存在侵權(quán)之處,也請(qǐng)您告知我,我將及時(shí)修改。文章來源地址http://www.zghlxwxcb.cn/news/detail-596496.html

參考

  1. Nuitka User Manual — Nuitka the Python Compiler documentation
  2. Nuitka Github 倉(cāng)庫(kù)

到了這里,關(guān)于Python 打包工具 Nuitka 入門指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Python】使用nuitka打包Python程序?yàn)镋XE可執(zhí)行程序

    1.說明 寫好的Python程序如果想要拿到其他電腦上運(yùn)行,那還得安裝一下Python環(huán)境和各種庫(kù),這是比較麻煩的,所以有必要把它打包成一個(gè)可執(zhí)行的exe文件??梢源虬黣xe的庫(kù)有好多個(gè),比如說pyinstaller、cx_Freeze等。 pyinstaller打包比較簡(jiǎn)單,如果有需要可以參考之前的文章【Pyth

    2024年01月25日
    瀏覽(27)
  • nuitka打包python的PyQt5成exe可執(zhí)行文件

    nuitka打包python的PyQt5成exe可執(zhí)行文件

    可以打包多文件,也可以打包單文件。 使用的python版本是3.8.10 1、下載gcc 方式1:可以到網(wǎng)站下載,點(diǎn)我跳轉(zhuǎn) 方式2:可以直接去網(wǎng)盤下載,點(diǎn)我跳轉(zhuǎn) 提取碼:8888 網(wǎng)盤里面也有python3.8.10的安裝包,下載后直接安裝即可。 下載 64位 winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14. 后,解壓到

    2024年02月05日
    瀏覽(22)
  • nuitka打包軟件程序

    1、打包參數(shù)含義 2、打包成文件夾 nuitka --standalone --windows-disable-console --show-memory --show-progress --plugin-enable=pyside6 --follow-imports --output-dir=out --windows-icon-from-ico=./icon.ico xxx.py 3、打包成一個(gè)exe nuitka --onefile --windows-disable-console --show-memory --show-progress --plugin-enable=pyside6 --follow-imports -

    2024年02月14日
    瀏覽(20)
  • Nuitka打包教程

    Nuitka打包教程

    目錄 1、Nuitka環(huán)境安裝 2、安裝nuitka 3、防止環(huán)境變量不生效,重啟項(xiàng)目、重啟電腦。 4、打包常用命令。使用nuitka --help可查看所有命令 5、常規(guī)打包一段簡(jiǎn)單的pyside代碼? 6、升級(jí):只編譯我們自己編寫的代碼。引用的代碼全部使用pyd來訪問。 7、包缺失 8、用 enigmaprotector 再次

    2024年02月02日
    瀏覽(17)
  • pycharm 項(xiàng)目打包制作安裝包教程(pyinstaller/nuitka + nsis)

    pycharm 項(xiàng)目打包制作安裝包教程(pyinstaller/nuitka + nsis)

    目錄 1.pycharm + pyinstaller + nsis(zip方式) 2.pycharm + nuitka + nsis + VNISEdit (目前使用) 一.在pycharm使用pyinstaller打包項(xiàng)目 先準(zhǔn)備好要打包的python項(xiàng)目 將項(xiàng)目文件在terminal中打開 安裝 pyinstaller pip install pyinstaller 輸入pyinstaller的相關(guān)打包指令 我們選用 pyinstaller -D start.py start.py是啟動(dòng)入口

    2024年02月07日
    瀏覽(17)
  • 熱門Java開發(fā)工具IDEA入門指南——插件安裝方式

    熱門Java開發(fā)工具IDEA入門指南——插件安裝方式

    IntelliJ IDEA,是java編程語(yǔ)言開發(fā)的集成環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的java開發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、JavaEE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能是非常強(qiáng)大的。 本文給大家講解在使用IntelliJ I

    2024年02月09日
    瀏覽(89)
  • 安全測(cè)試工具Burpsuit和OWASP ZAP使用入門指南

    安全測(cè)試工具Burpsuit和OWASP ZAP使用入門指南

    安裝: 網(wǎng)上有很多相關(guān)相關(guān)保姆級(jí)別教程,所以這里不加贅述了 盡量使用java8版本,破解版兼容8做的比較好 如果發(fā)現(xiàn)注冊(cè)機(jī)無法打開或者能打開注冊(cè)機(jī)【run】無法點(diǎn)擊喚起軟件安裝,可以使用命令行工具 java -jar burp-loader-keygen.jar java -Xbootclasspath/p:burp-loader-keygen.jar -jar burps

    2024年02月05日
    瀏覽(21)
  • 【Maven教程】(三)基礎(chǔ)使用篇:入門使用指南——POM編寫、業(yè)務(wù)代碼、測(cè)試代碼、打包與運(yùn)行、使用Archetype生成項(xiàng)目骨架~

    【Maven教程】(三)基礎(chǔ)使用篇:入門使用指南——POM編寫、業(yè)務(wù)代碼、測(cè)試代碼、打包與運(yùn)行、使用Archetype生成項(xiàng)目骨架~

    到目前為止,已經(jīng)大概了解并安裝好了Maven環(huán)境, 現(xiàn)在,我們開始創(chuàng)建一個(gè)最簡(jiǎn)單的 Hello World 項(xiàng)目。如果你是初次接觸 Maven, 建議按照本文的內(nèi)容 一步步地編寫代碼并執(zhí)行, 其中可能你會(huì)碰到一些概念暫時(shí)難以理解,但不用著急,記下這些疑難點(diǎn),我在后續(xù)文章中會(huì)逐一進(jìn)行

    2024年02月11日
    瀏覽(23)
  • 部署深度學(xué)習(xí)APP的經(jīng)歷(docker,streamlit cloud,nuitka)

    部署深度學(xué)習(xí)APP的經(jīng)歷(docker,streamlit cloud,nuitka)

    最近,接到一個(gè)部署深度學(xué)習(xí)APP的需求,這個(gè)APP使用torch、monai和pydicom等庫(kù)構(gòu)建了一個(gè)識(shí)別CT圖像中皮下脂肪、內(nèi)臟脂肪和骨骼肌,輸入是CT圖像,輸出是識(shí)別的圖像和相關(guān)數(shù)據(jù)。接手的時(shí)候,核心的算法已經(jīng)制作完成,僅是需要我構(gòu)建GUI并將其部署到某種途徑上,實(shí)現(xiàn)其應(yīng)用

    2024年02月12日
    瀏覽(18)
  • Python爬蟲入門指南

    隨著大數(shù)據(jù)時(shí)代的到來,網(wǎng)絡(luò)爬蟲技術(shù)變得越來越重要。Python作為一種功能強(qiáng)大的編程語(yǔ)言,非常適合用來編寫爬蟲程序。本文將帶領(lǐng)大家入門Python爬蟲,從基礎(chǔ)知識(shí)講起,逐步深入實(shí)踐。 一、爬蟲基礎(chǔ)知識(shí) 網(wǎng)絡(luò)爬蟲,又稱為網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機(jī)器人,是一種按照一定的規(guī)則

    2024年04月10日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包