色色男 Python 打包用具 Nuitka 初学指南

天上人间av

天上人间av

  • 首页
  • 动漫 在线
  • h 动漫
  • 动漫
  • 妈妈 调教
  • 调教 telegram
  • 女神 调教
  • 你的位置:天上人间av > 动漫 > 色色男 Python 打包用具 Nuitka 初学指南

    色色男 Python 打包用具 Nuitka 初学指南

    发布日期:2024-12-12 14:13    点击次数:139

    色色男 Python 打包用具 Nuitka 初学指南

    Nuitka是什么?nuitka是一个用来将python代码打包为exe可实践文献,便捷其在莫得相关环境的windows系统上运行的用具。其旨趣为:将python代码(我方写的部分)出动成C代码色色男,以提升运行的速率。

    通用选项--standalone 使得打包结果与土产货的Python环境无关,即使得打包结果具备可移植性。--onefile 使得打包结果为一个可实践文献,而不是一个文献夹。小结:--onefile选项下打出来的包自己就具备可移植性,因此不需要额外加上 --standalone。--onefile 打包结果像绿色软件,仅一个可实践文献;--standalone的打包结果像经过装配的软件,文献夹下包含运行所需要的文献和门径进口。

    --lto用于启用一语气时期优化。一语气时期优化是一种编译器优化时期,它不错在编译和一语气阶段对通盘门径进行优化,而不单是是对单个源文献进行优化。通过启用lto,您不错让编译器在一语气时对生成的目的代码进行更深刻的优化,提升门径的性能和实践效能--remove-output 在打包消除后,算帐打包经过中生成的临时文献。--enable-plugin= 启用插件,等号后跟插件名。在要打包的Python代码使用了一些特殊的包时,需要启用插件,Nuitka智商够正确打包。如:如在代码中使用了PySide6,就需要加上--enable-plugin=pyside6。具体的插件列表不错使用nuitka --plugin-list来搜检。--disable-console 在运行打包后的门径时,不会弹出约束台,而是径直运行GUI门径。--include-package-data= 包含给定软件包称呼中的数据文献,等号后软件包称呼。有的时候Nuitka并弗成正确分析出一些Python软件包所需要使用的数据文献,在运行门径时领导FileNotFoundError等谬误,此时就需要使用该选项。如:--include-package-data=ultralytics--include-data-files= 按文献名包含数据文献,等号后的步地为<SRC=DEST>。SRC指的是文献夹的旅途,DEST指的是文献夹相关于打包结果的旅途,其中DEST只可使用相对旅途。如:--include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt--include-data-dir= 包含文献夹中的数据文献,等号后的步地为<SRC=DEST>。使用门径与--include-data-files=疏导。python装配nuitka模块pip install -U nuitka

    使用 Nuitka 将浅易的 python3 代码编译为一个二进制文献

    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.用于实践Nuitka的Python解说器最好是CPython,即Python解说器的范例已矣。使用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             		知道谬误文告的版块信息和繁难详备信息,然后退出。默许为关闭。
    --module              		创建一个可实践的扩展模块,而不是一个门径。默许为关闭。
    --standalone          		为输出启用独处模式。这允许您在不使用现存Python装配的情况下将创建的二进制文献传输到其他机器。这也意味着它将变得更大。它默示了以下选项:"--follow imports"和"--python flag=no_site"。默许为关闭。
    --onefile             		在独处模式之上,启用onefile模式。这意味着不是一个文献夹,而是一个压缩的可实践文献被创建和使用。默许为关闭。
    --python-debug        		是否使用调试版块。Default使用您正在使用的来运行Nuitka,很可能猛烈调试版块。
    --python-flag=FLAG    		要使用的Python标志。默许值是您用来运行Nuitka的内容,这会强制实践特定的模式。这些选项也存在于范例Python可实践文献中。面前扶助:"-S"(别称"no_site")、"static_hashes"(不使用哈希立地化)、"no_warnings"(不给出Python运行时申饬)、"-O"(别称为"no_assels")、"no_docstring"(不使用文档字符串)、"-u"(别称为"unbuffered")和"-m"。默许为空。
    --python-for-scons=PATH 	若是使用Python3.3或Python3.4,请提供用于Scons的Python二进制文献的旅途。不然,Nuitka不错使用您运行Nuitka的软件,也不错使用Windows注册表中的Python装配。在Windows上,需要Python 3.5或更高版块。在非Windows上,Python 2.6或2.7也不错。

    常用选项

    --mingw64 #默许为依然装配的vs2017去编译,不然就按指定的比如mingw(官方提出)
    --standalone 独处环境,这是必须的(不然拷给别东说念主无法使用)
    --windows-disable-console 莫得CMD约束窗口
    --output-dir=out 生成exe到out文献夹底下去
    --show-progress 知道编译的程度,很直不雅
    --show-memory 知道内存的占用
    --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 软件的图标
    --windows-company-name=Windows下软件公司信息
    --windows-product-name=Windows下软件称呼
    --windows-file-version=Windows下软件的信息
    --windows-product-version=Windows下软件的家具信息
    --windows-file-description=Windows下软件的作用描画
    --windows-uac-admin=Windows下用户不错使用不息员权限来装配
    --linux-onefile-icon=Linux下的图标位置
    --onefile 像pyinstaller打包成单个exe文献
    --include-package=复制比如numpy,PyQt5 这些带文献夹的叫包能够轮子
    --include-module=复制比如when.py 这些以.py扫尾的叫模块
    –-include-package-data=包含给定软件包称呼中的数据文献,等号后软件包称呼。有的时候Nuitka并弗成正确分析出一些Python软件包所需要使用的数据文献,在运行门径时领导FileNotFoundError等谬误,此时就需要使用该选项。如:--include-package-data=ultralytics
    –-include-data-files= 按文献名包含数据文献,等号后的步地为<SRC=DEST>。SRC指的是文献夹的旅途,DEST指的是文献夹相关于打包结果的旅途,其中DEST只可使用相对旅途。如:--include-data-files=/Users/admin/Downloads/yolov5n.pt=./yolov5n.pt
    -–include-data-dir= 包含文献夹中的数据文献,等号后的步地为<SRC=DEST>。使用门径与--include-data-files=疏导。
    --follow-import-to=MODULE/PACKAGE  		若是使用该模块,请征服该模块;若是是一个包,请征服通盘包。不错屡次给定。默许为空。

    约束结果中包含的模块和包

    --include-package=PACKAGE						包括通盘包裹。当作Python定名空间,例如"some_package.sub_package",然后Nuitka会找到它,并将它和在该磁盘位置下找到的悉数模块包括在它创建的二进制或扩展模块中,并使其可供代码导入。为了幸免不需要的子包,例如测试,您不错这么作念"--nofollow import To=*.tests"。默许为空。
    --include-module=MODULE							包括单个模块。将其当作Python定名空间,例如"some_package.some_module",然后Nuitka会找到它,并将其包含在它创建的二进制或扩展模块中,并使其可由代码导入。默许为空。
    --include-plugin-directory=MODULE/PACKAGE 		还包括在该目次中找到的代码,将它们视为一个主文献。覆盖悉数其他包含选项。您应该更可爱其他包含选项,这些选项以称呼而不是文献名定名,这些选项通过在"sys.path"中查找内容。此选项仅适用于十分特殊的用例。不错屡次给定。默许为空。
    --include-plugin-files=PATTERN 					包括在与图案匹配的文献中。覆盖悉数其他奴隶选项。不错屡次给定。默许为空。
    --prefer-source-code 							关于依然编译的扩展模块,其中既有源文献又有扩展模块,频繁使用扩展模块,但最好从可用的源代码编译模块以得回最好性能。若是不需要,则有--no-preferred源代码来禁用相关它的申饬。默许为关闭。

    约束到导入的模块

    --follow-imports    					下跌到悉数导入的模块中。在独处模式下默许为开放,不然为关闭。
    --follow-import-to=MODULE/PACKAGE  		若是使用该模块,请征服该模块;若是是一个包,请征服通盘包。不错屡次给定。默许为空。
    --nofollow-import-to=MODULE/PACKAGE   	即使使用该模块称呼,也不要奴隶该模块称呼;能够,若是包称呼在职何情况下覆盖通盘包,则覆盖悉数其他选项。不错屡次给定。默许为空。
    --nofollow-imports  					根柢不要参加任何导入的模块,覆盖悉数其他包含选项,况且不适用于独处模式。默许为关闭。
    --follow-stdlib     					还不错从范例库中导入模块。这将大大增多编译时期,而且面前还莫得经过很好的测试,未必也无法使命。默许为关闭。

    OneFile选项

    --onefile-tempdir-spec=ONEFILE_TEMPDIR_SPEC   	将其用作在一个文献模式下解压缩到的文献夹。默许为"%TEMP%/onefile_%PID%_%TIME%",即用户临时目次,况且猛烈静态的,它将被删除。例如,使用"
    

    栏目分类