Python 如何使用ctypes跨平台制作模块?

Python 如何使用ctypes跨平台制作模块?,python,cross-platform,ctypes,Python,Cross Platform,Ctypes,我正在编写一个python模块,用于调用C函数。我是在Windows上开发的,所以我把C代码编译成了.dll文件。让我的模块在其他平台上顺利运行的最佳方法是什么 为Unix系统编译一个额外的.so文件,在我的模块中包含两个共享对象文件,并让Python代码根据运行它的系统加载这两个文件中的一个,这样就足够了吗?如果是,如何在Windows上编译与Unix兼容的.so文件?您需要Unix环境,可能需要使用VM。您需要链接到UNIX python运行时,还需要进行测试。您还需要确保在您的C中不使用W

我正在编写一个python模块,用于调用C函数。我是在Windows上开发的,所以我把C代码编译成了
.dll
文件。让我的模块在其他平台上顺利运行的最佳方法是什么


为Unix系统编译一个额外的
.so
文件,在我的模块中包含两个共享对象文件,并让Python代码根据运行它的系统加载这两个文件中的一个,这样就足够了吗?如果是,如何在Windows上编译与Unix兼容的
.so
文件?

您需要Unix环境,可能需要使用VM。您需要链接到UNIX python运行时,还需要进行测试。您还需要确保在您的C中不使用Windows扩展,并且坚持ISO标准C。您可能需要不同的。对于不同的linux/osx平台也是如此。将C源代码与您的发行版捆绑在一起,并将其安装在计算机上是很常见的。啊,我明白了。我希望我不必设置Unix环境,但这很有意义——谢谢。如果你们中的任何一位写了一个答案,我会接受的。你可能需要阅读Micha Gorelick和Ian Ozsvald的《高性能Python的编译到C》第7章-你需要一个UNIX环境,可能需要使用VM。您需要链接到UNIX python运行时,还需要进行测试。您还需要确保在您的C中不使用Windows扩展,并且坚持ISO标准C。您可能需要不同的。对于不同的linux/osx平台也是如此。将C源代码与您的发行版捆绑在一起,并将其安装在计算机上是很常见的。啊,我明白了。我希望我不必设置Unix环境,但这很有意义——谢谢。如果你们中的任何一位写了一个答案,我会接受的。你们可能想阅读Micha Gorelick和Ian Ozsvald的《高性能Python的第7章-编译成C》