小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python 打包工具 Nuitka 入門指南

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

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

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

--lto用于啟用鏈接時(shí)間優(yōu)化。鏈接時(shí)間優(yōu)化是一種編譯器優(yōu)化技術(shù),它可以在編譯和鏈接階段對(duì)整個(gè)程序進(jìn)行優(yōu)化,而不僅僅是對(duì)單個(gè)源文件進(jìn)行優(yōu)化。通過(guò)啟用lto,您可以讓編譯器在鏈接時(shí)對(duì)生成的目標(biāo)代碼進(jìn)行更深入的優(yōu)化,提高程序的性能和執(zhí)行效率
--remove-output 在打包結(jié)束后,清理打包過(guò)程中生成的臨時(shí)文件。
--enable-plugin= 啟用插件,等號(hào)后跟插件名。在要打包的Python代碼使用了一些特殊的包時(shí),需要啟用插件,Nuitka才能夠正確打包。如:如在代碼中使用了PySide6,就需要加上--enable-plugin=pyside6。具體的插件列表可以使用nuitka --plugin-list來(lái)查看。
--disable-console 在運(yùn)行打包后的程序時(shí),不會(huì)彈出控制臺(tái),而是直接運(yùn)行GUI程序。
--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=相同。
python安裝nuitka模塊
pip install -U nuitka

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

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

python -m nuitka --lto=no --onefile --standalone --include-module=numpy test1.py
實(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.

2.用于執(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.

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

常用選項(xiàng)

--mingw64 #默認(rèn)為已經(jīng)安裝的vs2017去編譯,否則就按指定的比如mingw(官方建議)
--standalone 獨(dú)立環(huán)境,這是必須的(否則拷給別人無(wú)法使用)
--windows-disable-console 沒(méi)有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)限來(lái)安裝
--linux-onefile-icon=Linux下的圖標(biāo)位置
--onefile 像pyinstaller打包成單個(gè)exe文件
--include-package=復(fù)制比如numpy,PyQt5 這些帶文件夾的叫包或者輪子
--include-module=復(fù)制比如when.py 這些以.py結(jié)尾的叫模塊
–-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=相同。
--follow-import-to=MODULE/PACKAGE  		如果使用該模塊,請(qǐng)遵循該模塊;如果是一個(gè)包,請(qǐng)遵循整個(gè)包。可以多次給定。默認(rèn)為空。

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

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

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

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

OneFile選項(xiàng)

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

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

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

DLL文件

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

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

--warn-implicit-exceptions  		對(duì)編譯時(shí)檢測(cè)到的隱式異常啟用警告。
--warn-unusual-code  				對(duì)編譯時(shí)檢測(cè)到的異常代碼啟用警告。
--assume-yes-for-downloads  		如果需要,允許Nuitka下載外部代碼,例如依賴walker、ccache,甚至Windows上的gcc。要禁用,請(qǐng)重定向來(lái)自nul設(shè)備的輸入,例如"</dev/null"或"<nul:"。默認(rèn)為提示。
--nowarn-mnemonic=MNEMONIC  		禁用給定助記符的警告。這些是為了確保你了解某些主題,通常指向Nuitka網(wǎng)站。助記符是URL末尾的一部分,沒(méi)有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",以自動(dòng)獲取堆棧跟蹤。默認(rèn)為關(guān)閉。
--execute-with-pythonpath  		使用"--run"立即執(zhí)行創(chuàng)建的二進(jìn)制文件或模塊時(shí),不要重置"PYTHONPATH"環(huán)境。當(dāng)所有模塊都成功包含在內(nèi)時(shí),您應(yīng)該不再需要PYTHONPATH,而且絕對(duì)不需要獨(dú)立模式。

編譯選項(xiàng)

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

輸出選項(xiàng)

--output-filename=FILENAME  		指定應(yīng)如何命名可執(zhí)行文件。對(duì)于擴(kuò)展模塊沒(méi)有選擇,對(duì)于獨(dú)立模式也沒(méi)有選擇,使用它將是一個(gè)錯(cuò)誤。這可能包括需要存在的路徑信息。在此平臺(tái)上默認(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"文件。這用于檢測(cè)隱式導(dǎo)入。默認(rèn)為關(guān)閉。

調(diào)試功能

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

后端C編譯器選擇

--clang             			強(qiáng)制使用叮當(dāng)聲。在Windows上,這需要一個(gè)工作的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版本號(hào),指定"list"作為已安裝編譯器的列表,或使用"latest"。如果已安裝,則默認(rèn)為使用的最新MSVC,否則使用MinGW64。
--jobs=N            			指定允許的并行C編譯器作業(yè)數(shù)。默認(rèn)為系統(tǒng)CPU計(jì)數(shù)。
--lto=choice        			使用鏈接時(shí)間優(yōu)化(MSVC、gcc、clang)。允許的值有"是"、"否"和"自動(dòng)"(當(dāng)已知有效時(shí))。默認(rèn)為"自動(dòng)"。
--static-libpython=choice 		使用Python的靜態(tài)鏈接庫(kù)。允許的值有"是"、"否"和"自動(dòng)"(當(dāng)已知有效時(shí))。默認(rèn)為"自動(dòng)"。

緩存控制

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

PGO編譯選項(xiàng)

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

跟蹤功能

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

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

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

Windows特定控件

--windows-icon-from-ico=ICON_PATH 								添加可執(zhí)行文件圖標(biāo)。對(duì)于不同的分辨率或內(nèi)部有多個(gè)圖標(biāo)的文件,可以多次給定。在后面的情況下,您還可以使用#<n>后綴,其中n是從1開(kāi)始的整數(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編譯時(shí),請(qǐng)?jiān)诩虞d應(yīng)用程序時(shí)顯示此信息。默認(rèn)為關(guān)閉。
--windows-uac-admin 											請(qǐng)求Windows用戶控制,以在執(zhí)行時(shí)授予管理員權(quán)限。(僅限Windows)。默認(rèn)為關(guān)閉。
--windows-uac-uiaccess 											請(qǐng)求Windows用戶控制,以強(qiáng)制僅從幾個(gè)文件夾運(yùn)行,遠(yuǎn)程桌面訪問(wèn)。(僅限Windows)。默認(rèn)為關(guān)閉。

macOS特定控件

--macos-target-arch=MACOS_TARGET_ARCH 			這應(yīng)該在什么架構(gòu)上運(yùn)行。默認(rèn)和限制是運(yùn)行Python所允許的。默認(rèn)值為"native",這是運(yùn)行Python的體系結(jié)構(gòu)。
--macos-create-app-bundle 						為macOS編譯時(shí),請(qǐng)創(chuàng)建捆綁包,而不是純二進(jìn)制應(yīng)用程序。目前是實(shí)驗(yàn)性的和不完整的。目前,這是解鎖控制臺(tái)禁用的唯一方法。默認(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é)果,因?yàn)檫@些結(jié)果必須是全局唯一的,并且可能會(huì)授予受保護(hù)的API訪問(wèn)權(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)啟動(dòng)一個(gè)窗口,并希望出現(xiàn)在Docker中時(shí),默認(rèn)值"gui"非常適合。如果沒(méi)有Window,應(yīng)用程序就是一個(gè)"后臺(tái)"應(yīng)用程序。對(duì)于稍后顯示的UI元素,"UI元素"介于兩者之間。該應(yīng)用程序不會(huì)出現(xiàn)在dock中,但在以后打開(kāi)窗口時(shí)可以完全訪問(wèn)桌面。
--macos-sign-identity=MACOS_APP_VERSION 		在macOS上登錄時(shí),默認(rèn)情況下將使用特別標(biāo)識(shí),但通過(guò)此選項(xiàng),您可以指定另一個(gè)要使用的標(biāo)識(shí)。代碼的簽名現(xiàn)在在macOS上是強(qiáng)制性的,不能被禁用。如果未給出,則默認(rèn)為"特別"。
--macos-sign-notarization 						在簽署公證時(shí),使用蘋果公司的正確TeamID身份,使用所需的運(yùn)行時(shí)簽名選項(xiàng),以便可以接受。
--macos-app-version=MACOS_APP_VERSION 			要在macOS捆綁包信息中使用的產(chǎn)品版本。如果未給定,則默認(rèn)為"1.0"。
--macos-app-protected-resource=RESOURCE_DESC 	請(qǐng)求訪問(wèn)macOS保護(hù)資源的權(quán)限,例如"NSMicrophoneUsageDescription:Microphone access for recording audio"。請(qǐng)求訪問(wèn)麥克風(fēng)并為用戶提供信息文本,說(shuō)明為什么需要這樣做。冒號(hào)之前是訪問(wèn)權(quán)限的操作系統(tǒng)標(biāo)識(shí)符,然后是信息文本。法律價(jià)值可在https://developer.apple.com/documentation/bundleresources/information_property_list/p protected_resources和該選項(xiàng)可以指定多次。默認(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個(gè)數(shù)字的序列,例如1.0或1.0.0.0,不允許再有數(shù)字,不允許有字符串。默認(rèn)為未使用。
--product-version=PRODUCT_VERSION 		要在版本信息中使用的產(chǎn)品版本。與文件版本的規(guī)則相同。默認(rèn)為未使用。
--file-description=FILE_DESCRIPTION 	版本信息中使用的文件的說(shuō)明。此時(shí)僅限Windows。默認(rèn)為二進(jìn)制文件名。
--copyright=COPYRIGHT_TEXT 				版本信息中使用的版權(quán)。此時(shí)僅限Windows。默認(rèn)為不存在。
--trademarks=TRADEMARK_TEXT 			版本信息中使用的版權(quán)。此時(shí)僅限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 				插件可以檢測(cè)它們是否可能被使用,您可以通過(guò)"--disable-plugin=plugin-that warnings"禁用警告,也可以使用此選項(xiàng)完全禁用該機(jī)制,這當(dāng)然也會(huì)稍微加快編譯速度,因?yàn)橐坏┠_定要使用哪些插件,此檢測(cè)代碼就會(huì)徒勞運(yùn)行。默認(rèn)為關(guān)閉。
--plugin-list       				顯示所有可用插件的列表并退出。默認(rèn)為關(guān)閉。
--user-plugin=PATH  				用戶插件的文件名??梢远啻谓o定。默認(rèn)為空。
--show-source-changes 				在編譯之前顯示對(duì)原始Python文件內(nèi)容的源代碼更改。主要用于開(kāi)發(fā)插件。默認(rèn)為False。

支持插件列表:

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

anti-bloat插件選項(xiàng)

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多