预先编译
备注
此模块即将弃用。更多信息请参见 弃用 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_dir
和output_file
生成扩展模块。
- distutils_extension(**kwargs)[源代码]
返回一个
distutils.core.Extension
实例,允许在传统的setup.py
驱动的构建过程中集成扩展模块的生成。可选的 kwargs 允许你传递可选参数给Extension
构造函数。在这种操作模式下,不需要自己调用
compile()
。此外,output_dir
和output_file
将被忽略。