预先编译

注意

此模块即将废弃。请参阅 numba.pycc 模块的废弃 以获取更多信息。

class numba.pycc.CC(extension_name, source_module=None)

一个用于从 Numba 编译的 Python 函数生成已编译扩展的对象。extension_name 是要生成的扩展的名称。source_module 是包含这些函数的 Python 模块;如果为 None,则通过检查调用堆栈来推断。

CC 实例具有以下属性和方法

name

(只读属性)要生成的扩展模块的名称。

output_dir

(读写属性)扩展模块将写入的目录。默认情况下,它是 source_module 所在的目录。

output_file

(读写属性)扩展模块将写入的文件的名称。默认情况下,这遵循当前平台的 Python 命名约定。

target_cpu

(读写属性)用于生成代码的 CPU 模型名称。这将选择适当的指令集扩展。默认情况下,选择通用 CPU 以生成可移植代码。

此属性的识别名称取决于当前的架构和 LLVM 版本。如果您已安装 LLVM,llc -mcpu=help 将为您提供列表。x86-64 上的示例有 "ivybridge""haswell""skylake""broadwell"。您也可以给定值 "host",它将选择当前的宿主 CPU。

verbose

(读写属性)如果为 true,则在编译扩展时打印信息。默认为 false。

@export(exported_name, sig)

标记被装饰的函数以使用签名 sig 进行编译。编译后的函数将作为 exported_name 暴露在生成的扩展模块中。

给定 CC 实例中的所有导出名称必须是唯一的,否则会引发异常。

compile()

编译所有导出的函数,并根据 output_diroutput_file 生成扩展模块。

distutils_extension(**kwargs)

返回一个 distutils.core.Extension 实例,允许将扩展模块的生成集成到传统的 setup.py 驱动的构建过程中。可选的 kwargs 允许您将可选参数传递给 Extension 构造函数。

在此操作模式下,您无需亲自调用 compile()。此外,output_diroutput_file 将被忽略。