2

我想编写一个 Python 包来包装我正在编写的新 C 库 - 老实说,这只是一个学习练习。我想调用这个库spam(当然),C 库的结构是这样的。

Spam/
    lib/
        foo.c
        Makefile
        libspam.a   /* Generated by Makefile */
        libspam.so  /* Generated by Makefile */

假设 foo.c 提供了一个公共函数foo(char * bar)。同时,我想提供一个 Python 包。我想在同一个命名空间下提供一个包装器foo和另一个函数,比如。是一个Python函数,它对then 调用执行一些检查。他们可以这样称呼safe_foosafe_foobarfoo

import spam

file='hello.txt'
foo(file)
safe_foo(file)

那可能吗?

类似的情况是我开发了一个 Python 包,然后想在不破坏 API 的情况下将一个函数重新实现为 C 函数。

您可能会看到我对 Python 打包有点陌生...

4

1 回答 1

2

这样做的常用方法是在 C 模块前加上下划线(例如_foo.so),然后正常命名 Python 模块(例如foo.py)。foo执行导入_foo并包含调用 C 模块中的函数的存根。

于 2012-08-15T09:53:57.703 回答