如何为不同的OS/Python版本编译Python C/C++扩展?

gol*_*bor 8 python packaging cross-platform python-c-extension

我注意到几个成熟的Python库都有针对大多数架构(Win32/Win-amd64/MacOS)和Python版本的预编译版本.针对不同环境交叉编译扩展的标准方法是什么?葡萄酒?虚拟机?人群采购?

Mar*_*eld 7

我们使用虚拟机和Hudson服务器.

我们为每个支持的体系结构提供了一个虚拟机(通常编译不会延长分配给它们的资源,因此VM很好).我想每个VM的配置可以通过像Puppet或Chef这样的东西来管理,以确保它是一个合适的构建环境.如果你有硬件,你当然可以使用真机,但是你想避免使用人们实际使用的机器(例如开发人员工作站).

然后,我们在Hudson中使用多配置项目来设置构建矩阵.构建矩阵允许我们(通过单击)在多个体系结构上构建多个python版本,但理论上,您可以构建可在矩阵中设置的每个组合和任何组合.当然你可以用Jenkins代替.


Dem*_*hun 0

SWIG 提供了多平台代码生成的途径。