预先编译
注意
此模块即将废弃。请参阅 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_dir
和output_file
生成扩展模块。
- distutils_extension(**kwargs)
返回一个
distutils.core.Extension
实例,允许将扩展模块的生成集成到传统的setup.py
驱动的构建过程中。可选的 kwargs 允许您将可选参数传递给Extension
构造函数。在此操作模式下,您无需亲自调用
compile()
。此外,output_dir
和output_file
将被忽略。