我可以使用distutils创建一个静态Cython库吗?

mar*_*ius 6 python distutils static-libraries cython

我想使用distutils构建一个静态的Cython库.我不关心它是一个可以导入的真正的Python扩展模块.我只想编译代码并将对象放在静态库中.创建动态库的代码非常简单,

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
   cmdclass = {'build_ext':build_ext},
   ext_modules = [Extension("test",["test.pyx"])]
)
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以使其静止?

lot*_*rio 2

Distutils 非常有限,并且不适合静态构建。我建议您使用其他东西来编译项目的静态库部分。

如果您的用例是从其他 C 代码调用 Cython 代码,那么您希望在 Cython 代码中使用publicapi声明以及声明的函数和变量。cdefCython 将允许从外部 C 代码调用如此声明的对象,并且它将在文件.h旁边.c为您生成一个文件。