一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python 打包工具 Nuitka 入門指南

 昵稱21609410 2024-03-25 發(fā)布于黑龍江

Nuitka是什么?
nuitka是一個用來將python代碼打包為exe可執(zhí)行文件,方便其在沒有相關(guān)環(huán)境的windows系統(tǒng)上運行的工具。其原理為:將python代碼(自己寫的部分)轉(zhuǎn)換成C代碼,以提高運行的速度。

通用選項
--standalone 使得打包結(jié)果與本地的Python環(huán)境無關(guān),即使得打包結(jié)果具備可移植性。
--onefile 使得打包結(jié)果為一個可執(zhí)行文件,而不是一個文件夾。
小結(jié):--onefile選項下打出來的包本身就具備可移植性,因此不需要額外加上 --standalone。--onefile 打包結(jié)果像綠色軟件,僅一個可執(zhí)行文件;--standalone的打包結(jié)果像經(jīng)過安裝的軟件,文件夾下包含運行所需要的文件和程序入口。

--lto用于啟用鏈接時間優(yōu)化。鏈接時間優(yōu)化是一種編譯器優(yōu)化技術(shù),它可以在編譯和鏈接階段對整個程序進(jìn)行優(yōu)化,而不僅僅是對單個源文件進(jìn)行優(yōu)化。通過啟用lto,您可以讓編譯器在鏈接時對生成的目標(biāo)代碼進(jìn)行更深入的優(yōu)化,提高程序的性能和執(zhí)行效率
--remove-output 在打包結(jié)束后,清理打包過程中生成的臨時文件。
--enable-plugin= 啟用插件,等號后跟插件名。在要打包的Python代碼使用了一些特殊的包時,需要啟用插件,Nuitka才能夠正確打包。如:如在代碼中使用了PySide6,就需要加上--enable-plugin=pyside6。具體的插件列表可以使用nuitka --plugin-list來查看。
--disable-console 在運行打包后的程序時,不會彈出控制臺,而是直接運行GUI程序。
--include-package-data= 包含給定軟件包名稱中的數(shù)據(jù)文件,等號后軟件包名稱。有的時候Nuitka并不能正確分析出一些Python軟件包所需要使用的數(shù)據(jù)文件,在運行程序時提示FileNotFoundError等錯誤,此時就需要使用該選項。如:--include-package-data=ultralytics
--include-data-files= 按文件名包含數(shù)據(jù)文件,等號后的格式為<SRC=DEST>。SRC指的是文件夾的路徑,DEST指的是文件夾相對于打包結(jié)果的路徑,其中DEST只能使用相對路徑。如:--include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt
--include-data-dir= 包含文件夾中的數(shù)據(jù)文件,等號后的格式為<SRC=DEST>。使用方法與--include-data-files=相同。
python安裝nuitka模塊
pip install -U nuitka

使用 Nuitka 將簡單的 python3 代碼編譯為一個二進(jìn)制文件

python -m nuitka --lto=no --onefile --standalone test1.py
使用 Nuitka 將簡單的 python3 代碼編譯為帶有numpy模塊的C代碼

python -m nuitka --lto=no --onefile --standalone --include-module=numpy test1.py
實用命令

python -m nuitka --help # 查看 Nuitka 幫助手冊
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

注意事項
1.官方文檔中提到,相對于直接使用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.

2.用于執(zhí)行Nuitka的Python解釋器最好是CPython,即Python解釋器的標(biāo)準(zhǔn)實現(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.

Options:
--help                		顯示此幫助消息并退出
--version             		顯示錯誤報告的版本信息和重要詳細(xì)信息,然后退出。默認(rèn)為關(guān)閉。
--module              		創(chuàng)建一個可執(zhí)行的擴(kuò)展模塊,而不是一個程序。默認(rèn)為關(guān)閉。
--standalone          		為輸出啟用獨立模式。這允許您在不使用現(xiàn)有Python安裝的情況下將創(chuàng)建的二進(jìn)制文件傳輸?shù)狡渌麢C(jī)器。這也意味著它將變得更大。它暗示了以下選項:"--follow imports"和"--python flag=no_site"。默認(rèn)為關(guān)閉。
--onefile             		在獨立模式之上,啟用onefile模式。這意味著不是一個文件夾,而是一個壓縮的可執(zhí)行文件被創(chuàng)建和使用。默認(rèn)為關(guān)閉。
--python-debug        		是否使用調(diào)試版本。Default使用您正在使用的來運行Nuitka,很可能是非調(diào)試版本。
--python-flag=FLAG    		要使用的Python標(biāo)志。默認(rèn)值是您用來運行Nuitka的內(nèi)容,這會強(qiáng)制執(zhí)行特定的模式。這些選項也存在于標(biāo)準(zhǔn)Python可執(zhí)行文件中。當(dāng)前支持:"-S"(別名"no_site")、"static_hashes"(不使用哈希隨機(jī)化)、"no_warnings"(不給出Python運行時警告)、"-O"(別名為"no_assels")、"no_docstring"(不使用文檔字符串)、"-u"(別名為"unbuffered")和"-m"。默認(rèn)為空。
--python-for-scons=PATH 	如果使用Python3.3或Python3.4,請?zhí)峁┯糜赟cons的Python二進(jìn)制文件的路徑。否則,Nuitka可以使用您運行Nuitka的軟件,也可以使用Windows注冊表中的Python安裝。在Windows上,需要Python 3.5或更高版本。在非Windows上,Python 2.6或2.7也可以。

常用選項

--mingw64 #默認(rèn)為已經(jīng)安裝的vs2017去編譯,否則就按指定的比如mingw(官方建議)
--standalone 獨立環(huán)境,這是必須的(否則拷給別人無法使用)
--windows-disable-console 沒有CMD控制窗口
--output-dir=out 生成exe到out文件夾下面去
--show-progress 顯示編譯的進(jìn)度,很直觀
--show-memory 顯示內(nèi)存的占用
--enable-plugin=pyside6  打包pyside6模塊的剛需
--plugin-enable=tk-inter 打包tkinter模塊的剛需
--plugin-enable=numpy 打包numpy,pandas,matplotlib模塊的剛需
--plugin-enable=torch 打包pytorch的剛需
--plugin-enable=tensorflow 打包tensorflow的剛需
--windows-icon-from-ico=你的.ico 軟件的圖標(biāo)
--windows-company-name=Windows下軟件公司信息
--windows-product-name=Windows下軟件名稱
--windows-file-version=Windows下軟件的信息
--windows-product-version=Windows下軟件的產(chǎn)品信息
--windows-file-description=Windows下軟件的作用描述
--windows-uac-admin=Windows下用戶可以使用管理員權(quán)限來安裝
--linux-onefile-icon=Linux下的圖標(biāo)位置
--onefile 像pyinstaller打包成單個exe文件
--include-package=復(fù)制比如numpy,PyQt5 這些帶文件夾的叫包或者輪子
--include-module=復(fù)制比如when.py 這些以.py結(jié)尾的叫模塊
–-include-package-data=包含給定軟件包名稱中的數(shù)據(jù)文件,等號后軟件包名稱。有的時候Nuitka并不能正確分析出一些Python軟件包所需要使用的數(shù)據(jù)文件,在運行程序時提示FileNotFoundError等錯誤,此時就需要使用該選項。如:--include-package-data=ultralytics
–-include-data-files= 按文件名包含數(shù)據(jù)文件,等號后的格式為<SRC=DEST>。SRC指的是文件夾的路徑,DEST指的是文件夾相對于打包結(jié)果的路徑,其中DEST只能使用相對路徑。如:--include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt
-–include-data-dir= 包含文件夾中的數(shù)據(jù)文件,等號后的格式為<SRC=DEST>。使用方法與--include-data-files=相同。
--follow-import-to=MODULE/PACKAGE  		如果使用該模塊,請遵循該模塊;如果是一個包,請遵循整個包??梢远啻谓o定。默認(rèn)為空。

控制結(jié)果中包含的模塊和包

--include-package=PACKAGE						包括整個包裹。作為Python命名空間,例如"some_package.sub_package",然后Nuitka會找到它,并將它和在該磁盤位置下找到的所有模塊包括在它創(chuàng)建的二進(jìn)制或擴(kuò)展模塊中,并使其可供代碼導(dǎo)入。為了避免不需要的子包,例如測試,您可以這樣做"--nofollow import To=*.tests"。默認(rèn)為空。
--include-module=MODULE							包括單個模塊。將其作為Python命名空間,例如"some_package.some_module",然后Nuitka會找到它,并將其包含在它創(chuàng)建的二進(jìn)制或擴(kuò)展模塊中,并使其可由代碼導(dǎo)入。默認(rèn)為空。
--include-plugin-directory=MODULE/PACKAGE 		還包括在該目錄中找到的代碼,將它們視為一個主文件。覆蓋所有其他包含選項。您應(yīng)該更喜歡其他包含選項,這些選項以名稱而不是文件名命名,這些選項通過在"sys.path"中查找內(nèi)容。此選項僅適用于非常特殊的用例??梢远啻谓o定。默認(rèn)為空。
--include-plugin-files=PATTERN 					包括在與圖案匹配的文件中。覆蓋所有其他跟隨選項??梢远啻谓o定。默認(rèn)為空。
--prefer-source-code 							對于已經(jīng)編譯的擴(kuò)展模塊,其中既有源文件又有擴(kuò)展模塊,通常使用擴(kuò)展模塊,但最好從可用的源代碼編譯模塊以獲得最佳性能。如果不需要,則有--no-preferred源代碼來禁用有關(guān)它的警告。默認(rèn)為關(guān)閉。

控制到導(dǎo)入的模塊

--follow-imports    					下降到所有導(dǎo)入的模塊中。在獨立模式下默認(rèn)為打開,否則為關(guān)閉。
--follow-import-to=MODULE/PACKAGE  		如果使用該模塊,請遵循該模塊;如果是一個包,請遵循整個包??梢远啻谓o定。默認(rèn)為空。
--nofollow-import-to=MODULE/PACKAGE   	即使使用該模塊名稱,也不要跟隨該模塊名稱;或者,如果包名稱在任何情況下覆蓋整個包,則覆蓋所有其他選項??梢远啻谓o定。默認(rèn)為空。
--nofollow-imports  					根本不要進(jìn)入任何導(dǎo)入的模塊,覆蓋所有其他包含選項,并且不適用于獨立模式。默認(rèn)為關(guān)閉。
--follow-stdlib     					還可以從標(biāo)準(zhǔn)庫中導(dǎo)入模塊。這將大大增加編譯時間,而且目前還沒有經(jīng)過很好的測試,有時也無法工作。默認(rèn)為關(guān)閉。

OneFile選項

--onefile-tempdir-spec=ONEFILE_TEMPDIR_SPEC   	將其用作在一個文件模式下解壓縮到的文件夾。默認(rèn)為"%TEMP%/onefile_%PID%_%TIME%",即用戶臨時目錄,并且是非靜態(tài)的,它將被刪除。例如,使用"%CACHE_DIR%%COMPANY%/%PRODUCT%/%VERSION%"這樣的字符串,這是一個良好的靜態(tài)緩存路徑,因此不會刪除。
--onefile-child-grace-time=GRACE_TIME_MS   		當(dāng)停止子項時,例如由于CTRL-C或關(guān)機(jī)等原因,Python代碼會得到一個"KeyboardInterrupt",它可以處理該中斷,例如刷新數(shù)據(jù)。這是以毫秒為單位的時間,在它以艱難的方式殺死孩子之前。單位為毫秒,默認(rèn)為5000。

數(shù)據(jù)文件

--include-package-data=PACKAGE   			當(dāng)停止子項時,例如由于CTRL-C或關(guān)機(jī)等原因,Python代碼會得到一個"KeyboardInterrupt",它可以處理該中斷,例如刷新數(shù)據(jù)。這是以毫秒為單位的時間,在它以艱難的方式殺死孩子之前。單位為毫秒,默認(rèn)為5000。
--include-data-files=DESC  					在分發(fā)中按文件名包括數(shù)據(jù)文件。允許的形式有很多。使用"--include data files=/path/to/file/*.txt=folder_name/some.txt",它將復(fù)制單個文件,如果是多個文件,則會抱怨。使用"--include data files=/path/to/files/*.txt=folder_name/",它會將所有匹配的文件放入該文件夾。對于遞歸復(fù)制,有一個具有3個值的表單"--include data files=/path/to/scan=folder_name=**/*.txt",將保留目錄結(jié)構(gòu)。默認(rèn)為空。
--include-data-dir=DIRECTORY   				在分發(fā)中包括完整目錄中的數(shù)據(jù)文件。這是遞歸的。如果您想要非遞歸包含,請使用模式檢查"--include data files"。一個例子是整個目錄的"--include data dir=/path/some_dir=data/some_dir"(用于純拷貝)。所有文件都將被復(fù)制,如果要排除文件,則需要事先將其刪除,或者使用"--noinclude data files"選項將其刪除。默認(rèn)為空。
--noinclude-data-files=PATTERN  			不要包含與給定文件名模式匹配的數(shù)據(jù)文件。這是針對目標(biāo)文件名,而不是源路徑。因此,要忽略包數(shù)據(jù)中的文件模式,"package_name"應(yīng)匹配為"package_name/*.txt"?;蛘?,對于整個目錄,只需使用"packagename"。默認(rèn)為空。
--list-package-data=LIST_PACKAGE_DATA  		輸出為給定包名稱找到的數(shù)據(jù)文件。未完成默認(rèn)設(shè)置。

DLL文件

--noinclude-dlls=PATTERN   					不包括與文件名模式匹配的DLL文件鑒于這是針對目標(biāo)文件名,而不是源文件名路徑。因此,忽略包含在軟件包"package_name"應(yīng)匹配為"軟件包名稱/someDLL.*"。默認(rèn)為空。            
--list-package-dlls=LIST_PACKAGE_DLLS   	輸出為給定程序包名稱找到的DLL。未完成默認(rèn)設(shè)置。

控制Nuitka發(fā)出的警告

--warn-implicit-exceptions  		對編譯時檢測到的隱式異常啟用警告。
--warn-unusual-code  				對編譯時檢測到的異常代碼啟用警告。
--assume-yes-for-downloads  		如果需要,允許Nuitka下載外部代碼,例如依賴walker、ccache,甚至Windows上的gcc。要禁用,請重定向來自nul設(shè)備的輸入,例如"</dev/null"或"<nul:"。默認(rèn)為提示。
--nowarn-mnemonic=MNEMONIC  		禁用給定助記符的警告。這些是為了確保你了解某些主題,通常指向Nuitka網(wǎng)站。助記符是URL末尾的一部分,沒有HTML后綴??梢远啻谓o定并接受shell模式。默認(rèn)為空。

編譯后立即執(zhí)行

--run               			立即執(zhí)行創(chuàng)建的二進(jìn)制文件(或?qū)刖幾g后的模塊)。默認(rèn)為關(guān)閉。
--debugger          			在調(diào)試器內(nèi)部執(zhí)行,例如"gdb"或"lldb",以自動獲取堆棧跟蹤。默認(rèn)為關(guān)閉。
--execute-with-pythonpath  		使用"--run"立即執(zhí)行創(chuàng)建的二進(jìn)制文件或模塊時,不要重置"PYTHONPATH"環(huán)境。當(dāng)所有模塊都成功包含在內(nèi)時,您應(yīng)該不再需要PYTHONPATH,而且絕對不需要獨立模式。

編譯選項

--user-package-configuration-file=YAML_FILENAME   	用戶提供的帶有包配置的Yaml文件。您可以包括DLL、刪除膨脹、添加隱藏的依賴項。有關(guān)要使用的格式的完整說明,請參閱《用戶手冊》??梢远啻谓o定。默認(rèn)為空。
--full-compat       								強(qiáng)制執(zhí)行與CPython的絕對兼容性。甚至不允許與CPython行為發(fā)生微小偏差,例如,沒有更好的回溯或異常消息,這些消息并非真正不兼容,只是不同或更糟。這僅用于測試,不應(yīng)使用。
--file-reference-choice=MODE   						選擇"__file__"的值。對于"運行時"(獨立二進(jìn)制模式和模塊模式的默認(rèn)值),創(chuàng)建的二進(jìn)制文件和模塊,使用其自身的位置來扣除"__file___"的值。包含的包假裝在該位置下方的目錄中。這允許您在展開中包含數(shù)據(jù)文件。如果您只是尋求加速,最好使用"原始"值,即將使用源文件位置的值。在"凍結(jié)"的情況下,會使用符號"<凍結(jié)模塊名稱>"。出于兼容性原因,"__file__"值將始終具有".py"后綴,而與實際值無關(guān)。
--module-name-choice=MODE  							選擇"__name__"和"__package__"的值。使用"運行時"(模塊模式的默認(rèn)值),創(chuàng)建的模塊使用父包來推導(dǎo)"__package __"的數(shù)值,以完全兼容。值"original"(其他模式的默認(rèn)值)允許進(jìn)行更多的靜態(tài)優(yōu)化,但與通常可以加載到任何包中的模塊不兼容。

輸出選項

--output-filename=FILENAME  		指定應(yīng)如何命名可執(zhí)行文件。對于擴(kuò)展模塊沒有選擇,對于獨立模式也沒有選擇,使用它將是一個錯誤。這可能包括需要存在的路徑信息。在此平臺上默認(rèn)為"<program_name>"。執(zhí)行
--output-dir=DIRECTORY 				指定中間輸出文件和最終輸出文件的放置位置。DIRECTORY將填充構(gòu)建文件夾、dist文件夾、二進(jìn)制文件等。默認(rèn)為當(dāng)前目錄。
--remove-output     				生成模塊或exe文件后刪除生成目錄。默認(rèn)為關(guān)閉。
--no-pyi-file       				不要為Nuitka創(chuàng)建的擴(kuò)展模塊創(chuàng)建".piy"文件。這用于檢測隱式導(dǎo)入。默認(rèn)為關(guān)閉。

調(diào)試功能

--debug             													在Nuitka中執(zhí)行所有可能的自檢以查找錯誤,不用于生產(chǎn)。默認(rèn)為關(guān)閉。
--unstripped        													在生成的對象文件中保留調(diào)試信息,以便更好地進(jìn)行調(diào)試器交互。默認(rèn)為關(guān)閉。
--profile           													啟用基于vmprof的花費時間分析。當(dāng)前不工作。默認(rèn)為關(guān)閉。
--internal-graph   														創(chuàng)建優(yōu)化過程內(nèi)部的圖形,不用于整個程序,而僅用于小型測試用例。默認(rèn)為關(guān)閉。
--trace-execution   													跟蹤執(zhí)行輸出,在執(zhí)行之前輸出代碼行。默認(rèn)為關(guān)閉。
--recompile-c-only  													這不是增量編譯,而是僅用于Nuitka開發(fā)。獲取現(xiàn)有文件,然后簡單地將它們重新編譯為C。允許編譯經(jīng)過編輯的C文件,以便快速調(diào)試對生成的源代碼的更改,例如查看是否傳遞了代碼、值輸出等,默認(rèn)為關(guān)閉。取決于編譯Python源代碼來確定應(yīng)該查看哪些文件。
--xml=XML_FILENAME  													將內(nèi)部程序結(jié)構(gòu)、優(yōu)化結(jié)果以XML形式寫入給定的文件名。
--generate-c-only   													只生成C源代碼,不將其編譯為二進(jìn)制或模塊。這是為了調(diào)試和代碼覆蓋率分析,不會浪費CPU。默認(rèn)為關(guān)閉。不要認(rèn)為您可以直接使用此選項。
--experimental=FLAG 													使用聲明為"實驗性"的功能。如果代碼中沒有實驗特性,則可能沒有任何效果。每個實驗功能都使用秘密標(biāo)簽(檢查源)。
--low-memory        													通過分叉更少的C編譯作業(yè)和使用使用更少內(nèi)存的選項,嘗試使用更少的內(nèi)存。用于嵌入式機(jī)器。在內(nèi)存不足的情況下使用此選項。默認(rèn)為關(guān)閉。
--create-environment-from-report=CREATE_ENVIRONMENT_FROM_REPORT 		在給定的報告文件的不存在路徑中創(chuàng)建一個新的virtualenv,例如"--report=compilation-report.xml"。默認(rèn)情況下未完成。

后端C編譯器選擇

--clang             			強(qiáng)制使用叮當(dāng)聲。在Windows上,這需要一個工作的Visual Studio版本才能搭載。默認(rèn)為關(guān)閉。
--mingw64           			在Windows上強(qiáng)制使用MinGW64。除非使用帶有MinGW Python的MSYS2,否則默認(rèn)為禁用。
--msvc=MSVC_VERSION 			在Windows上強(qiáng)制使用特定的MSVC版本。允許的值是例如"14.3"(MSVC 2022)和其他MSVC版本號,指定"list"作為已安裝編譯器的列表,或使用"latest"。如果已安裝,則默認(rèn)為使用的最新MSVC,否則使用MinGW64。
--jobs=N            			指定允許的并行C編譯器作業(yè)數(shù)。默認(rèn)為系統(tǒng)CPU計數(shù)。
--lto=choice        			使用鏈接時間優(yōu)化(MSVC、gcc、clang)。允許的值有"是"、"否"和"自動"(當(dāng)已知有效時)。默認(rèn)為"自動"。
--static-libpython=choice 		使用Python的靜態(tài)鏈接庫。允許的值有"是"、"否"和"自動"(當(dāng)已知有效時)。默認(rèn)為"自動"。

緩存控制

--disable-cache=DISABLED_CACHES 		禁用選定的緩存,為所有緩存指定"all"。當(dāng)前允許的值為:"all"、"ccache"、"bytecode"、"dll dependencies"??梢远啻谓o定,也可以使用逗號分隔的值。默認(rèn)為無。
--clean-cache=CLEAN_CACHES 				在執(zhí)行之前清除給定的緩存,為所有緩存指定"all"。當(dāng)前允許的值為:"all"、"ccache"、"bytecode"、"dll dependencies"。可以多次給定,也可以使用逗號分隔的值。默認(rèn)為無。
--disable-bytecode-cache 				不要重復(fù)使用作為字節(jié)碼包含的模塊的依賴性分析結(jié)果,特別是來自標(biāo)準(zhǔn)庫的依賴性。與--disable-cache=字節(jié)碼相同。
--disable-ccache    					不要嘗試使用ccache(gcc、clang等)或clcache(MSVC、clangcl)。與--disable-cache=cache相同。
--disable-dll-dependency-cache 			禁用依賴項助行器緩存。將導(dǎo)致創(chuàng)建分發(fā)文件夾的時間更長,但可能會在懷疑緩存會導(dǎo)致錯誤的情況下使用。與--disable-cache=dll-依賴項相同。
--force-dll-dependency-cache-update 	用于更新依賴項助行器緩存。將導(dǎo)致創(chuàng)建分發(fā)文件夾的時間更長,但可能會用于懷疑緩存會導(dǎo)致錯誤或已知需要更新的情況。

PGO編譯選項

--pgo               				通過首先為分析運行執(zhí)行專用構(gòu)建,然后使用結(jié)果反饋到C編譯中,啟用C級配置文件引導(dǎo)優(yōu)化(PGO)。注意:這是實驗性的,還不適用于Nuitka的獨立模式。默認(rèn)為關(guān)閉。
--pgo-args=PGO_ARGS 				在配置文件引導(dǎo)優(yōu)化的情況下要傳遞的參數(shù)。在PGO分析運行期間,這些文件被傳遞給特殊構(gòu)建的可執(zhí)行文件。默認(rèn)為空。
--pgo-executable=PGO_EXECUTABLE 	收集配置文件信息時要執(zhí)行的命令。僅當(dāng)您需要通過準(zhǔn)備運行的腳本啟動它時才使用此選項。默認(rèn)使用創(chuàng)建的程序。

跟蹤功能

--report=REPORT_FILENAME 		XML輸出文件中的報表模塊、數(shù)據(jù)文件、編譯、插件等詳細(xì)信息。這對于問題報告也非常有用。例如,這些報告可以用于重新創(chuàng)建環(huán)境,使用"--從報告創(chuàng)建環(huán)境"很容易,但包含大量信息。默認(rèn)為禁用。
--report-template=REPORT_DESC 	通過模板進(jìn)行報告。提供模板和輸出文件名"template.rst.j2:output.rst"。對于內(nèi)置模板,請查看《用戶手冊》中的內(nèi)容??梢远啻谓o定。默認(rèn)值為空。
--quiet             			禁用所有信息輸出,但顯示警告。默認(rèn)為關(guān)閉。
--show-scons        			使用詳細(xì)信息運行C構(gòu)建后端Scons,顯示執(zhí)行的命令和檢測到的編譯器。默認(rèn)為關(guān)閉。
--no-progressbar    			禁用進(jìn)度條。默認(rèn)為off.ted編譯器。默認(rèn)為關(guān)閉。
--show-progress     			過時:提供進(jìn)度信息和統(tǒng)計數(shù)據(jù)。禁用正常進(jìn)度條。默認(rèn)為關(guān)閉。
--show-memory       			提供內(nèi)存信息和統(tǒng)計信息。默認(rèn)為關(guān)閉。
--show-modules      			提供包含的模塊和DLL的信息已過時:應(yīng)改用"--report"文件。默認(rèn)為關(guān)閉。
--show-modules-output=PATH 		輸出"--show modules"的位置應(yīng)為文件名。默認(rèn)為標(biāo)準(zhǔn)輸出。
--verbose           			輸出所采取操作的詳細(xì)信息,特別是在優(yōu)化中??梢宰兊煤芏?。默認(rèn)為關(guān)閉。
--verbose-output=PATH 			從"--verbose"輸出的位置應(yīng)該是一個文件名。默認(rèn)為標(biāo)準(zhǔn)輸出。

操作系統(tǒng)通用選項

--disable-console   						為Windows或macOS編譯時,請禁用控制臺窗口并創(chuàng)建GUI應(yīng)用程序。默認(rèn)為關(guān)閉。
--enable-console    						為Windows或macOS編譯時,請啟用控制臺窗口并創(chuàng)建控制臺應(yīng)用程序。這會禁用某些模塊的提示,例如建議禁用它的"PySide"。默認(rèn)值為true。
--force-stdout-spec=FORCE_STDOUT_SPEC   	強(qiáng)制程序的標(biāo)準(zhǔn)輸出到此位置。適用于禁用控制臺的程序和使用Nuitka商業(yè)版Windows服務(wù)插件的程序。默認(rèn)為非活動,例如使用"%PROGRAM%.out.txt",即程序附近的文件。
--force-stderr-spec=FORCE_STDERR_SPEC   	強(qiáng)制程序的標(biāo)準(zhǔn)錯誤到此位置。適用于禁用控制臺的程序和使用Nuitka商業(yè)版Windows服務(wù)插件的程序。默認(rèn)為非活動,例如使用"%PROGRAM%.err.txt",即程序附近的文件。

Windows特定控件

--windows-icon-from-ico=ICON_PATH 								添加可執(zhí)行文件圖標(biāo)。對于不同的分辨率或內(nèi)部有多個圖標(biāo)的文件,可以多次給定。在后面的情況下,您還可以使用#<n>后綴,其中n是從1開始的整數(shù)索引,指定要包括的特定圖標(biāo),以及要忽略的所有其他圖標(biāo)。
--windows-icon-from-exe=ICON_EXE_PATH 							從此現(xiàn)有可執(zhí)行文件復(fù)制可執(zhí)行文件圖標(biāo)(僅限Windows)。
--onefile-windows-splash-screen-image=SPLASH_SCREEN_IMAGE 		為Windows和onefile編譯時,請在加載應(yīng)用程序時顯示此信息。默認(rèn)為關(guān)閉。
--windows-uac-admin 											請求Windows用戶控制,以在執(zhí)行時授予管理員權(quán)限。(僅限Windows)。默認(rèn)為關(guān)閉。
--windows-uac-uiaccess 											請求Windows用戶控制,以強(qiáng)制僅從幾個文件夾運行,遠(yuǎn)程桌面訪問。(僅限Windows)。默認(rèn)為關(guān)閉。

macOS特定控件

--macos-target-arch=MACOS_TARGET_ARCH 			這應(yīng)該在什么架構(gòu)上運行。默認(rèn)和限制是運行Python所允許的。默認(rèn)值為"native",這是運行Python的體系結(jié)構(gòu)。
--macos-create-app-bundle 						為macOS編譯時,請創(chuàng)建捆綁包,而不是純二進(jìn)制應(yīng)用程序。目前是實驗性的和不完整的。目前,這是解鎖控制臺禁用的唯一方法。默認(rèn)為關(guān)閉。
--macos-app-icon=ICON_PATH 						添加要使用的應(yīng)用程序捆綁包的圖標(biāo)。只能給出一次。默認(rèn)為Python圖標(biāo)(如果可用)。
--macos-signed-app-name=MACOS_SIGNED_APP_NAME 	用于macOS簽名的應(yīng)用程序的名稱。遵循"com.YourCompany.AppName"命名結(jié)果以獲得最佳結(jié)果,因為這些結(jié)果必須是全局唯一的,并且可能會授予受保護(hù)的API訪問權(quán)限。
--macos-app-name=MACOS_APP_NAME 				要在macOS捆綁包信息中使用的產(chǎn)品的名稱。默認(rèn)為二進(jìn)制文件的基本文件名。
--macos-app-mode=MODE 							應(yīng)用程序捆綁包的應(yīng)用程序模式。當(dāng)啟動一個窗口,并希望出現(xiàn)在Docker中時,默認(rèn)值"gui"非常適合。如果沒有Window,應(yīng)用程序就是一個"后臺"應(yīng)用程序。對于稍后顯示的UI元素,"UI元素"介于兩者之間。該應(yīng)用程序不會出現(xiàn)在dock中,但在以后打開窗口時可以完全訪問桌面。
--macos-sign-identity=MACOS_APP_VERSION 		在macOS上登錄時,默認(rèn)情況下將使用特別標(biāo)識,但通過此選項,您可以指定另一個要使用的標(biāo)識。代碼的簽名現(xiàn)在在macOS上是強(qiáng)制性的,不能被禁用。如果未給出,則默認(rèn)為"特別"。
--macos-sign-notarization 						在簽署公證時,使用蘋果公司的正確TeamID身份,使用所需的運行時簽名選項,以便可以接受。
--macos-app-version=MACOS_APP_VERSION 			要在macOS捆綁包信息中使用的產(chǎn)品版本。如果未給定,則默認(rèn)為"1.0"。
--macos-app-protected-resource=RESOURCE_DESC 	請求訪問macOS保護(hù)資源的權(quán)限,例如"NSMicrophoneUsageDescription:Microphone access for recording audio"。請求訪問麥克風(fēng)并為用戶提供信息文本,說明為什么需要這樣做。冒號之前是訪問權(quán)限的操作系統(tǒng)標(biāo)識符,然后是信息文本。法律價值可在https://developer.apple.com/documentation/bundleresources/information_property_list/p protected_resources和該選項可以指定多次。默認(rèn)為空。

Linux特定控件

--linux-icon=ICON_PATH 為要使用的onefile二進(jìn)制文件添加可執(zhí)行圖標(biāo)。只能給出一次。默認(rèn)為Python圖標(biāo)(如果可用)。
二進(jìn)制版本信息

--company-name=COMPANY_NAME 			要在版本信息中使用的公司的名稱。默認(rèn)為未使用。
--product-name=PRODUCT_NAME 			要在版本信息中使用的產(chǎn)品的名稱。默認(rèn)為二進(jìn)制文件的基本文件名。
--file-version=FILE_VERSION 			要在版本信息中使用的文件版本。必須是最多4個數(shù)字的序列,例如1.0或1.0.0.0,不允許再有數(shù)字,不允許有字符串。默認(rèn)為未使用。
--product-version=PRODUCT_VERSION 		要在版本信息中使用的產(chǎn)品版本。與文件版本的規(guī)則相同。默認(rèn)為未使用。
--file-description=FILE_DESCRIPTION 	版本信息中使用的文件的說明。此時僅限Windows。默認(rèn)為二進(jìn)制文件名。
--copyright=COPYRIGHT_TEXT 				版本信息中使用的版權(quán)。此時僅限Windows。默認(rèn)為不存在。
--trademarks=TRADEMARK_TEXT 			版本信息中使用的版權(quán)。此時僅限Windows。默認(rèn)為不存在。

插件控件

--enable-plugin=PLUGIN_NAME 		已啟用插件。必須是插件名稱。使用"--plugin-list"查詢完整列表并退出。默認(rèn)為空。
--disable-plugin=PLUGIN_NAME 		禁用的插件。必須是插件名稱。使用"--plugin-list"查詢完整列表并退出。大多數(shù)標(biāo)準(zhǔn)插件都不是禁用的好主意。默認(rèn)為空。
--plugin-no-detection 				插件可以檢測它們是否可能被使用,您可以通過"--disable-plugin=plugin-that warnings"禁用警告,也可以使用此選項完全禁用該機(jī)制,這當(dāng)然也會稍微加快編譯速度,因為一旦您確定要使用哪些插件,此檢測代碼就會徒勞運行。默認(rèn)為關(guān)閉。
--plugin-list       				顯示所有可用插件的列表并退出。默認(rèn)為關(guān)閉。
--user-plugin=PATH  				用戶插件的文件名??梢远啻谓o定。默認(rèn)為空。
--show-source-changes 				在編譯之前顯示對原始Python文件內(nèi)容的源代碼更改。主要用于開發(fā)插件。默認(rèn)為False。

支持插件列表:

anti-bloat        修補(bǔ)愚蠢的從廣泛使用的庫模塊中導(dǎo)入的源代碼。
data-files        包括包配置文件指定的數(shù)據(jù)文件。
delvewheel        需要在獨立模式下使用包來"支持"delewheel。
dill-compat       "dill"包兼容性所需。
dll-files         根據(jù)程序包配置文件包括DLL。
enum-compat       Python2和'enum'包需要。
eventlet          支持包含"eventlet"依賴項及其對"dns"包monkey補(bǔ)丁的需求。
gevent            "gevent"包所需。
gi                支持GI包typelib依賴項。
glfw              OpenGL和"glfw"軟件包在獨立模式下需要。
implicit-imports  根據(jù)包配置文件提供包的隱式導(dǎo)入。
kivy              "kivy"包所需。
matplotlib        "matplotlib"模塊需要。
multiprocessing   Python的"多處理"模塊所需。
no-qt             禁用獨立模式的所有Qt綁定。
options-nanny     根據(jù)軟件包配置文件通知用戶潛在的問題。
pbr-compat        "pbr"包在獨立模式下需要。
pkg-resources     "pkg_resources"的解決方案。
pmw-freezer       "Pmw"包所需。
pylint-warnings   支持PyLint/PyDev linting源標(biāo)記。
pyqt5             PyQt5軟件包所需。
pyqt6             PyQt6包在獨立模式下所需。
pyside2           PySide2程序包所需。
pyside6           PySide6包在獨立模式下需要。
pywebview         "webview"包(PyPI上的pywebview)所需。
tk-inter          Python的Tk模塊所需。
trio              "trio"套餐所需。
upx               使用UPX自動壓縮創(chuàng)建的二進(jìn)制文件。

anti-bloat插件選項

--show-anti-bloat-changes 									注釋插件所做的更改。
--noinclude-setuptools-mode=NOINCLUDE_SETUPTOOLS_MODE 		如果遇到"setuptools"或?qū)?,該怎么辦。這個包可能有很大的依賴性,絕對應(yīng)該避免。還處理"setuptools_scm"。
--noinclude-pytest-mode=NOINCLUDE_PYTEST_MODE 				如果遇到"pytest"導(dǎo)入,該怎么辦。這個包可能有很大的依賴性,絕對應(yīng)該避免。還處理"鼻子"進(jìn)口。
--noinclude-unittest-mode=NOINCLUDE_UNITTEST_MODE 			如果遇到單元測試導(dǎo)入,該怎么辦。這個包可能有很大的依賴性,絕對應(yīng)該避免。
--noinclude-IPython-mode=NOINCLUDE_IPYTHON_MODE 			如果遇到IPython導(dǎo)入,該怎么辦。這個包可能有很大的依賴性,絕對應(yīng)該避免。
--noinclude-dask-mode=NOINCLUDE_DASK_MODE 					如果遇到"dask"導(dǎo)入,該怎么辦。這個包可能有很大的依賴性,絕對應(yīng)該避免。
--noinclude-numba-mode=NOINCLUDE_NUMBA_MODE 				如果遇到"numba"導(dǎo)入,該怎么辦。這個包可能很大,有依賴項,并且目前不適用于單機(jī)版。這個包很大,有依賴關(guān)系,應(yīng)該避免使用。
--noinclude-default-mode=NOINCLUDE_DEFAULT_MODE 			這實際上為上述選項提供了默認(rèn)的"警告"值,并可用于打開所有這些選項。
--noinclude-custom-mode=CUSTOM_CHOICES 						如果遇到特定導(dǎo)入,該怎么辦。格式是模塊名稱,可以也應(yīng)該是頂級包,然后選擇一個選項,"error"、"warning"、"nofollow",例如PyQt5:error。

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明vb.net教程C#教程python教程。

原文鏈接:https://blog.csdn.net/m0_66570838/article/details/132232023

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    91香蕉视频精品在线看| 色婷婷在线视频免费播放| 国产视频一区二区三区四区| 亚洲精选91福利在线观看| 国产又爽又猛又粗又色对黄| 国产日产欧美精品视频| 国产精品不卡高清在线观看| 91人妻人人精品人人爽| 亚洲做性视频在线播放| 中文字幕人妻av不卡| 国产水滴盗摄一区二区| 粉嫩一区二区三区粉嫩视频| 日本午夜免费观看视频| 国产一级不卡视频在线观看| 久热99中文字幕视频在线| 麻豆蜜桃星空传媒在线观看 | 成人精品视频一区二区在线观看| 好吊视频有精品永久免费| 亚洲精品福利入口在线| 欧美成人免费夜夜黄啪啪| 久久99午夜福利视频| 国产一级精品色特级色国产| 五月婷婷亚洲综合一区| 丝袜美女诱惑在线观看| 日韩精品你懂的在线观看| 国产精品乱子伦一区二区三区| 亚洲a级一区二区不卡| 高潮日韩福利在线观看| 亚洲一区二区三区福利视频| 91久久精品在这里色伊人| 视频一区二区 国产精品| 日韩欧美亚洲综合在线| 欧美字幕一区二区三区| 国产户外勾引精品露出一区| 欧美日韩校园春色激情偷拍| 亚洲国产综合久久天堂| 日韩中文字幕欧美亚洲| 国产精品白丝久久av| 九七人妻一区二区三区| 国产精品亚洲综合天堂夜夜| 欧美亚洲91在线视频|