相关疑难解决方法(0)

使用 Cython 生成的头文件

根据文档,可以使用从 Cython 生成的 C 头文件。我已经Hello World毫无问题地遵循了这个例子,现在我想尝试一些不同的东西。我想使用公共声明来使用自定义方法。我的代码结构如下:

  • 你好.pyx
  • 设置文件
  • 主文件

你好.pyx

cdef public void say_hello():
    print("Hello World")
Run Code Online (Sandbox Code Playgroud)

设置文件

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

ext_modules = [
    Extension("hello", ["hello.pyx", "main.c"]),
]

setup(
  name='Hello app',
  cmdclass={'build_ext': build_ext},
  ext_modules=ext_modules
)
Run Code Online (Sandbox Code Playgroud)

主文件

#include "hello.h"

int main(void){
    say_hello();
}
Run Code Online (Sandbox Code Playgroud)

main.c作为测试文件以验证该say_hello()方法按预期工作。构建安装文件python3 setup.py build_ext会产生以下输出。

    running build_ext
    skipping 'hello.c' Cython extension (up-to-date)
    building 'hello' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall …
Run Code Online (Sandbox Code Playgroud)

c cython

3
推荐指数
1
解决办法
3164
查看次数

标签 统计

c ×1

cython ×1