Nuitka是什么? 通用選項 --lto用于啟用鏈接時間優(yōu)化。鏈接時間優(yōu)化是一種編譯器優(yōu)化技術(shù),它可以在編譯和鏈接階段對整個程序進(jìn)行優(yōu)化,而不僅僅是對單個源文件進(jìn)行優(yōu)化。通過啟用lto,您可以讓編譯器在鏈接時對生成的目標(biāo)代碼進(jìn)行更深入的優(yōu)化,提高程序的性能和執(zhí)行效率 使用 Nuitka 將簡單的 python3 代碼編譯為一個二進(jìn)制文件
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 注意事項
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特定控件
--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 |
|