预先编译

备注

此模块即将弃用。更多信息请参见 弃用 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

(读写属性) 如果为真,在编译扩展时打印出信息。默认为假。

@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 将被忽略。