我正在学习/试验C语言中的Python扩展。我试图包装一个C库,以便它可以用一种更Python的方式使用。例如:
import mylib
widget = mylib.widget.Widget(name="Hello!")
widget.show()
mylib.utils.say_hello()
在C代码中,传递给PyModule_Create
的模块名是“mylib”mylib.widget“,和”mylib.utils公司“分别说。mylib.widget
模块还包括一个新的Widget
类型。在
但是,我似乎不知道如何让这些扩展使用那种包/名称空间的风格来安装。我试过了:
^{pr2}$但这行不通。”mylib没有名为widget的模块。在
C扩展通常是如何打包/分发的?在
哇,伙计。扩展可以有子模块,但您可能必须在C init()函数中定义它们;正如您所看到的,distutils在这个概念上放弃了幽灵。我会做这样的事情:
然后让你的文件布局是:
^{pr2}$这样,
*.so
文件(在windows上是*.pyd
)将最终位于python站点包中的package_name/
目录中。在相关问题 更多 >
编程相关推荐