Numba 命令行界面(CLI)完全指南:系统信息采集、故障排查与编译调试
编译器高性能计算【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址https://gitcode.com/gh_mirrors/nu/numba点击查看免费下载Numba 是一个基于 LLVM 的 NumPy 感知动态 Python 编译器日常使用中通常通过import numba以 Python API 方式调用。不过Numba 在安装时也会随包提供一个名为numba的命令行工具用于快速查看系统与安装环境信息、导出结构化系统报告以及在开发或排障时对使用 Numba 的 Python 脚本执行编译中间产物类型注解、LLVM IR、汇编转储。读完本文你将掌握numba命令的全部子命令、python -m numba与!numba的等价用法以及如何利用--sys-json输出机器可读的系统诊断报告。CLI 的定位与两种等价调用方式Numba 本质上是一个 Python 包其主体是 numba/core 下的编译器实现CLI 只是它的一个轻量入口目前唯一用途是快速展示系统与安装信息和为使用 Numba 的 Python 脚本快速获取调试信息见 docs/source/user/cli.rst。在终端中直接输入numba并跟上选项与参数如--help、-s即可。若出现command not found说明PATH中没有包含 Numba 的安装位置此时可改用完全等价的python -m numba若仍失败请按 docs/source/user/installing.rst 中安装检查一节先确认import numba是否正常。两种写法调用的是同一份代码numba/__main__.py仅做了一件事——导入 numba/misc/numba_entry.py 中的main()并sys.exit(main())这保证python -m numba与命令行脚本numba行为完全一致。在 IPython 或 Jupyter 中则可借助其通用 shell 执行特性使用!numba注意这并非普通python终端的能力。帮助输出与全部选项运行numba --help可查看全部可用选项$ numba --help usage: numba [-h] [--annotate] [--dump-llvm] [--dump-optimized] [--dump-assembly] [--annotate-html ANNOTATE_HTML] [-s] [--sys-json SYS_JSON] [-g] [filename] positional arguments: filename Python source filename optional arguments: -h, --help show this help message and exit --annotate Annotate source --dump-llvm Print generated llvm assembly --dump-optimized Dump the optimized llvm assembly --dump-assembly Dump the LLVM generated assembly --annotate-html ANNOTATE_HTML Output source annotation as html -s, --sysinfo Output system information for bug reporting --sys-json SYS_JSON Saves the system info dict as a json file -g, --gdbinfo Output system information about gdb上表由 numba_entry.py 中的 make_parser() 使用argparse构建。与官方文档相比当前源码中还增加了两个选项-g/--gdbinfo输出 Numba 对 gdb 调试环境的支持状况与--sys-json将系统信息字典保存为 JSON 文件下文会分别展开。系统信息报告numba -snumba -s等价于numba --sysinfo会打印与系统、Numba 安装及关键依赖相关的大量信息是向开发者反馈 bug 时的首选素材。同样地在 IPython/Jupyter 里用!numba -s即可查看。该报告由 numba/misc/numba_sysinfo.py 中的get_sysinfo()收集、display_sysinfo()格式化输出。报告按区块组织各区块含义如下Time Stamp报告生成时间本地时间与 UTC以及收集耗时。Hardware Information架构Machine、LLVM 报告的主机 CPU 名称llvmbind.get_host_cpu_name()、逻辑 CPU 数、可访问 CPU 数依赖 psutil 的cpu_affinity或 Linux/proc/self/status、CFS 限制cgroup 配额/周期折算的可用 CPU 份额以及 LLVM 探测到的 CPU 特性集合llvmbind.get_host_cpu_features()。OS Information平台名、内核版本、libc 版本Linux 下由platform.libc_ver()提供。Python InformationPython 编译器、实现CPython、版本与 locale。Numba Toolchain Versions与LLVM InformationNumba 与 llvmlite 版本、LLVM 主版本。CUDA Information是否成功初始化设备cu.list_devices()[0]、驱动/运行时版本、NVIDIA bindings 是否可用、numba.cuda.detect()的输出、CUDA 库测试输出以及小版本兼容性Minor Version Compatibility相关状态。NumPy InformationNumPy 版本以及从numpy.core._multiarray_umath读出的 SIMD 特性、dispatch 与 baseline 集合。SciPy / LAPACK InformationSciPy 版本、Numba 构建所用的 LAPACK 整数宽度LP64/ILP64与 SciPy 运行时宽度是否匹配该检查来自numba/np/linalg.py的_LAPACK_BUILD_ILP64与_lapack_runtime_is_ilp64()。SVML Informationconfig.USING_SVML状态、libsvml加载结果、llvmlite 是否使用打过 SVML 补丁的 LLVM以及三者综合的 SVML Operational 判定。Threading Layer InformationTBB、OpenMP、Workqueue 三种并行后端各自是否可导入对应numba/np/ufunc/下的tbbpool、omppool、workqueueOpenMP 还会报告厂商。Numba Environment Variable Information当前环境中所有以NUMBA_开头的环境变量及其取值。Conda Information与Installed Packages若存在 conda 则执行conda info --json与conda list否则回退到python -m pip list列举已安装包。Error log/Warning log收集过程中产生的错误与警告汇总。示例输出节选来自官方文档$ numba -s System info: -------------------------------------------------------------------------------- __Time Stamp__ Report started (local time) : 2022-11-30 15:40:42.368114 UTC start time : 2022-11-30 15:40:42.368129 Running time (s) : 2.563586 __Hardware Information__ Machine : x86_64 CPU Name : ivybridge CPU Count : 3 Number of accessible CPUs : ? List of accessible CPUs cores : ? CFS Restrictions (CPUs worth of runtime) : None CPU Features : 64bit aes avx cmov cx16 cx8 f16c fsgsbase fxsr mmx pclmul popcnt rdrnd sahf sse sse2 sse3 sse4.1 sse4.2 ssse3 xsave Memory Total (MB) : 14336 Memory Available (MB) : 11540 __OS Information__ Platform Name : macOS-10.16-x86_64-i386-64bit Platform Release : 20.6.0 OS Name : Darwin OS Version : Darwin Kernel Version 20.6.0: ... OS Specific Version : 10.16 x86_64 Libc Version : ? __Python Information__ Python Compiler : Clang 14.0.6 Python Implementation : CPython Python Version : 3.10.8 Python Locale : en_US.UTF-8 __Numba Toolchain Versions__ Numba Version : 0untagged.gb91eec710 llvmlite Version : 0.40.0dev043.g7783803 __LLVM Information__ LLVM Version : 11.1.0 __CUDA Information__ CUDA Device Initialized : False CUDA Driver Version : ? CUDA Runtime Version : ? CUDA NVIDIA Bindings Available : ? CUDA NVIDIA Bindings In Use : ? CUDA Detect Output: None CUDA Libraries Test Output: None __NumPy Information__ NumPy Version : 1.23.4 NumPy Supported SIMD features : (MMX, SSE, SSE2, ...) NumPy Supported SIMD dispatch : (SSSE3, SSE41, ...) NumPy Supported SIMD baseline : (SSE, SSE2, SSE3) NumPy AVX512_SKX support detected : False __SVML Information__ SVML State, config.USING_SVML : False SVML Library Loaded : False llvmlite Using SVML Patched LLVM : True SVML Operational : False __Threading Layer Information__ TBB Threading Layer Available : True --TBB imported successfully. OpenMP Threading Layer Available : True --Vendor: Intel Workqueue Threading Layer Available : True --Workqueue imported successfully. __Numba Environment Variable Information__ None found. __Conda Information__ Conda Build : not installed Conda Env : 4.12.0 Conda Platform : osx-64 Conda Python Version : 3.9.12.final.0 Conda Root Writable : True __Installed Packages__ (output truncated due to length)几点值得注意的细节报告末尾会提示提交给他人时只需复制两条虚线----之间的内容或指定区块且务必先删除不希望公开的私有信息。内存与可访问 CPU 等硬件信息的准确性依赖 psutil若未安装 psutil代码会回退到读取/proc/meminfo、/proc/self/status、macOS 的sysctl/vm_stat、Windows 的 PowerShell CIM 查询并给出 consider installing psutil 的警告见 get_os_spec_info()。该模块还通过 numba/tests/test_sysinfo.py 验证了每个关键字段的存在性、类型安全int/float/str/bool/list/dict/datetime以及无错误日志的约束。导出结构化 JSON 报告--sys-json除了面向人阅读的文本报告CLI 还提供--sys-json 路径将整个系统信息字典保存为 JSON 文件$ numba --sys-json /tmp/numba_sysinfo.json在 numba_entry.py 中该分支调用get_sysinfo()将Start与Start UTC两个datetime对象序列化为 ISO 8601 字符串后以indent4写入指定文件并直接退出不再处理 filename。该行为在 numba/tests/test_cli.py 的 test_json_sysinfo_from_module 中得到了验证测试不仅断言 JSON 文件被创建、可被json.load解析还逐项校验了各字段的类型。这一能力对 CI 环境、自动化诊断脚本与机器学习式的环境比对非常有价值。gdb 调试环境信息-gnumba -g等价于numba --gdbinfo输出 Numba 对 gdb 的支持情况由 numba/misc/numba_gdbinfo.py 实现。它会依据config.GDB_BINARY定位 gdb 二进制可通过环境变量NUMBA_GDB_BINARY覆盖实际调用gdb -q -ex ... -ex q检查 gdb 能否启动、内置 Python 是否可用输出sys.version_info[:2]、NumPy 是否可用及其版本汇总出 Numba 打印扩展的支持等级FullPython 与 NumPy 均支持、Partial仅 Python或None给出扩展文件numba/misc/gdb_print_extension.py的绝对路径并提示在 gdb 提示符下执行source 路径加载。其输出示例$ numba -g GDB info: -------------------------------------------------------------------------------- Binary location : /usr/bin/gdb Print extension location : .../numba/misc/gdb_print_extension.py Python version : 3.11 NumPy version : 1.24.3 Numba printing extension support : Full (Python and NumPy supported)numba/tests/test_cli.py 通过 mock 覆盖了 gdb 不可用、Python/NumPy 缺失、版本字符串不可解析等各种边界情形TestGDBCLIInfoBrokenGdbs则真实运行python -m numba -g并设置无效的NUMBA_GDB_BINARY验证容错输出。编译调试注解与 LLVM 中间产物转储numba命令的另一大用途是对脚本执行 转储dump类调试。先创建示例脚本myscript.pyimport numba numba.jit def f(x): return 2 * x f(42)然后依次尝试以下命令$ numba myscript.py --annotate $ numba myscript.py --annotate-html myscript.html $ numba myscript.py --dump-llvm $ numba myscript.py --dump-optimized $ numba myscript.py --dump-assembly各选项含义--annotate输出带类型的源码注解type annotation展示每个变量与表达式被推断出的 Numba 类型。--annotate-html 文件将注解输出为 HTML 文件。注意该模式依赖jinja2模板库若未安装会抛出ImportError: Please install the jinja2 package见 numba_entry.py。--dump-llvm打印未经优化阶段的 LLVM IR。--dump-optimized打印优化后的 LLVM IROptimized LLVM assembly。--dump-assembly打印 LLVM 最终生成的目标机器汇编。底层机制选项到环境变量的映射这些转储选项并非直接驱动编译器而是通过环境变量传递给后续的子进程。在 numba_entry.py 的 main() 中os.environ[NUMBA_DUMP_ANNOTATION] str(int(args.annotate)) if args.annotate_html is not None: from jinja2 import Template os.environ[NUMBA_DUMP_HTML] str(args.annotate_html[0]) os.environ[NUMBA_DUMP_LLVM] str(int(args.dump_llvm)) os.environ[NUMBA_DUMP_OPTIMIZED] str(int(args.dump_optimized)) os.environ[NUMBA_DUMP_ASSEMBLY] str(int(args.dump_assembly))随后用subprocess.call([sys.executable, args.filename])以当前 Python 解释器执行目标脚本。脚本内的numba.jit编译过程会读取这些环境变量——它们对应 numba/core/config.py 中的config.DUMP_LLVM、config.DUMP_OPTIMIZED、config.DUMP_ASSEMBLY、config.ANNOTATE与config.HTMLHTML 路径会先转为绝对路径。也就是说你完全可以直接设置同名环境变量而绕开 CLI例如$ NUMBA_DUMP_LLVM1 python myscript.py这与numba myscript.py --dump-llvm效果一致。理解这一点后你在调试 JIT 编译、排查代码生成问题时就有了两套可互换的调试入口。小结numba命令行工具虽小却覆盖了从环境体检到编译排障的完整链路场景命令查看全部选项numba --help打印人类可读系统报告numba -s导出 JSON 系统报告numba --sys-json report.json查看 gdb 支持状况numba -g输出类型注解numba script.py --annotate/--annotate-html out.html输出 LLVM IR 与汇编numba script.py --dump-llvm/--dump-optimized/--dump-assembly遇到command not found时改用python -m numba二者等价在 IPython/Jupyter 中用!numba。向维护者提交 bug 报告时优先附上numba -s或--sys-json的输出它涵盖了硬件、OS、Python、llvmlite/LLVM、CUDA、NumPy、LAPACK、SVML、线程后端、NUMBA_* 环境变量与已安装包等全部关键信息能显著加速问题定位。赞分享编译器高性能计算【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址https://gitcode.com/gh_mirrors/nu/numba点击查看免费下载相关推荐Wand-Enhancer 快速上手解锁游戏修改器高级功能Wand Enhancer 快速上手解锁游戏修改器高级功能 Wand Enhancer 是一款开源的本地补丁工具面向 Windows 10/11 上已安装桌面应用前端Eww 故障排查完全指南编译失败、Wayland 兼容、配置加载与调试命令实战Eww 故障排查完全指南编译失败、Wayland 兼容、配置加载与调试命令实战 本文是 EwwElKowars Wacky Widgets官方文档 doc桌面应用HiGHS高性能优化求解器架构原理与算法实现深度解析HiGHS高性能优化求解器架构原理与算法实现深度解析 HiGHS是一款开源的高性能线性优化求解器专门用于解决大规模稀疏线性规划 LP 、二次规划 QP 和混科学计算高性能计算创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

云平台服务器存储应急预案:从故障分级到处置演练的完整指南

云平台服务器存储应急预案:从故障分级到处置演练的完整指南

简介:为云平台运维团队量身定制的服务器与存储应急预案文档,面向承担云计算虚拟化平台日常管理、故障响应与业务连续性保障的技术人员。全文共6页,按目录清晰展开,涵盖目的、适用范围、规范内容、故障分类、应急准备、具体措施、故…

2026/9/23 21:00:46 阅读更多 →
FAST HashMap 查到的值偶尔变了:指针生命周期、回调重入与并发边界

FAST HashMap 查到的值偶尔变了:指针生命周期、回调重入与并发边界

FAST HashMap 查到的值偶尔变了:指针生命周期、回调重入与并发边界 向 FAST HashMap 插入临时字符串地址后,第一次查询正常,下一次却读到乱码;另一个清理函数在 Traverse 回调里删除元素,偶发卡死。两类问题都不是哈希…

2026/9/23 21:00:46 阅读更多 →
蘑菇识别系统源码实战:从图像分类到PyTorch模型训练全流程解析

蘑菇识别系统源码实战:从图像分类到PyTorch模型训练全流程解析

简介:这份Python蘑菇识别系统源码是一套基于深度学习的完整图像识别项目,面向熟悉Python基础、希望系统学习图像分类与计算机视觉的开发者,也适合生物、农业领域需要自动化识别蘑菇种类的技术人员作为参考。压缩包共54个文件、大小约31MB&…

2026/9/23 21:00:46 阅读更多 →

最新新闻

Moto CodeBuild 模拟实战:在测试中 Mock AWS CodeBuild 项目与构建 API

Moto CodeBuild 模拟实战:在测试中 Mock AWS CodeBuild 项目与构建 API

Mock测试 【免费下载链接】moto A library that allows you to easily mock out tests based on AWS infrastructure. 项目地址: https://gitcode.com/gh_mirrors/mo/moto 点击查看 免费下载 本篇技术指南围绕 moto 仓库中 CodeBuild 服务文档 展开,系统…

2026/9/25 3:31:50 阅读更多 →
并行加法器 vs 先行进位加法器:进位延迟、关键路径与工程实现

并行加法器 vs 先行进位加法器:进位延迟、关键路径与工程实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 3:31:50 阅读更多 →
grammars-v4 中 R 语言 ANTLR 语法解析指南:掌握 RFilter 换行符预处理机制

grammars-v4 中 R 语言 ANTLR 语法解析指南:掌握 RFilter 换行符预处理机制

编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 导读 在 grammars-v4 仓库的 r 目录下&…

2026/9/25 3:31:50 阅读更多 →
VoltAgent 接入 Deep Infra:使用 `deepinfra/<model>` 模型路由打通低成本高性能推理

VoltAgent 接入 Deep Infra:使用 `deepinfra/<model>` 模型路由打通低成本高性能推理

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 De…

2026/9/25 3:31:50 阅读更多 →
用 ANTLR v4 解析 Scala 3:grammars-v4 中 Scala3 语法的设计、覆盖率与已知限制

用 ANTLR v4 解析 Scala 3:grammars-v4 中 Scala3 语法的设计、覆盖率与已知限制

编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 本文面向需要为 Scala 3 构建词法/语法分…

2026/9/25 3:31:50 阅读更多 →
Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入

Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入

简介:这份基于Java的物联网IOT通用驱动包设计源码,面向中高级Java开发者与系统集成商,解决Modbus-TCP、Bacnet、OPC-UA等多协议设备接入问题,封装为SDK形式,可直接嵌入业务系统。压缩包共76个文件,约1.73MB…

2026/9/25 3:30:49 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →