企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 2.3。提前编译 > 原文: [http://numba.pydata.org/numba-doc/latest/reference/aot-compilation.html](http://numba.pydata.org/numba-doc/latest/reference/aot-compilation.html) ```py class numba.pycc.CC(extension_name, source_module=None) ``` 用于从 Numba 编译的 Python 函数生成编译扩展的对象。 _extension_name_ 是要生成的扩展名。 _source_module_ 是包含这些函数的 Python 模块;如果`None`,则通过检查调用堆栈来推断。 [`CC`](#numba.pycc.CC "numba.pycc.CC") 实例具有以下属性和方法: ```py name ``` (只读属性)要生成的扩展模块的名称。 ```py output_dir ``` (读写属性)扩展模块将写入的目录。默认情况下,它是 _source_module_ 所在的目录。 ```py output_file ``` (读写属性)扩展模块将写入的文件的名称。默认情况下,这遵循当前平台的 Python 命名约定。 ```py target_cpu ``` (读写属性)为其生成代码的 CPU 模型的名称。这将选择适当的指令集扩展。默认情况下,选择通用 CPU 以生成可移植代码。 此属性的已识别名称取决于当前体系结构和 LLVM 版本。如果安装了 LLVM,`llc -mcpu=help`将为您提供一个列表。 x86-64 的例子是`"ivybridge"`,`"haswell"`,`"skylake"`或`"broadwell"`。您还可以给出值`"host"`,它将选择当前的主机 CPU。 ```py verbose ``` (读写属性)如果为 true,则在编译扩展时打印输出信息。默认为 False。 ```py @export(exported_name, sig) ``` 使用签名 _sig_ 标记要编译的修饰函数。编译的函数将在生成的扩展模块中作为 _exported_name_ 公开。 给定 [`CC`](#numba.pycc.CC "numba.pycc.CC") 实例中的所有导出名称必须是不同的,否则会引发异常。 ```py compile() ``` 编译所有导出的函数并生成 [`output_dir`](#numba.pycc.CC.output_dir "numba.pycc.CC.output_dir") 和 [`output_file`](#numba.pycc.CC.output_file "numba.pycc.CC.output_file") 指定的扩展模块。 ```py distutils_extension(**kwargs) ``` 返回 [`distutils.core.Extension`](https://docs.python.org/3/distutils/apiref.html#distutils.core.Extension "(in Python v3.7)") 实例,允许在传统的`setup.py`驱动的构建过程中集成扩展模块的生成。可选的 _kwargs_ 允许您将可选参数传递给 [`Extension`](https://docs.python.org/3/distutils/apiref.html#distutils.core.Extension "(in Python v3.7)") 构造函数。 在这种操作模式下,没有必要自己调用 [`compile()`](#numba.pycc.CC.compile "numba.pycc.CC.compile") 。此外, [`output_dir`](#numba.pycc.CC.output_dir "numba.pycc.CC.output_dir") 和 [`output_file`](#numba.pycc.CC.output_file "numba.pycc.CC.output_file") 将被忽略。