我用SWIG编写了一个Python的C++扩展。根据我对Python和SWIG的理解,每个模块都必须有自己的.pyd文件。例如,如果我有一个名为“mymodule”的模块,那么应该有一个对应的“mymodule.pyd”文件。
在我的特殊情况下,我希望只有一个“pyd”文件,并多个模块链接到它。
mypackage/
mypackage/__init__.py
mypackage/module1.py
mypackage/module2.py
我不想维护multiples.pyd,这样我就可以在VS2010中将接口(.I)文件放在同一个项目下。
编辑:到目前为止,我唯一能让它工作的方法是将我的“pyd”文件复制到两个新文件中:_module1.pyd和_module2.pyd。但我不喜欢这个解决方案,因为我需要不必要地复制30个月的“pyd”文件。我希望模块链接到一个'\u package.pyd'文件。
最好的办法是什么?
最佳答案
最后,最简单的方法和“正确”的方法是创建多个项目,只调用大型单片项目的一些公开部分。SWIG将解析较小的项目以创建Python模块。很有魅力。
关于python - Python和SWIG-单个.pyd(.so)中的多个模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8127917/