在64位linux上编译32位python模块(例如numpy)

在64位linux上编译32位python模块(例如numpy),python,linux,x86-64,32-bit,distutils,Python,Linux,X86 64,32 Bit,Distutils,在python测试框架中,我们通过Tkinter与spirent testcenter的tcl API接口。spirent testcenter API只有32位可用,这意味着我们的tcl解释器需要32位。我们使用python中的Tkinter引导tcl API。(我知道最近为testcenter发布了一个python驱动程序,但它也是32位的。)因为Tkinter集成在python中,python安装也需要32位 我想在CentOS x86_64工作站上运行此框架。我已经成功地在32位中安装了

在python测试框架中,我们通过Tkinter与spirent testcenter的tcl API接口。spirent testcenter API只有32位可用,这意味着我们的tcl解释器需要32位。我们使用python中的Tkinter引导tcl API。(我知道最近为testcenter发布了一个python驱动程序,但它也是32位的。)因为Tkinter集成在python中,python安装也需要32位

我想在CentOS x86_64工作站上运行此框架。我已经成功地在32位中安装了testcenter驱动程序、ActiveTcl和python,这一切都可以正常工作。然而,testframework还依赖于许多python包(例如numpy),这些包也需要构建在32位中才能使用它们。然而,我不知道如何在32位中构建这些包。我曾尝试将编译器选项-m32传递给distutils build命令(即python setup.py build),但很高兴地忽略了这一点。似乎有一个-p选项可以通过平台,但这只适用于windows。我也研究过使用32位纯编译器,但distutils似乎有一个可用编译器的静态列表,而且我认为只有intel编译器(即商业版…)是32位纯编译器

在如何在64位linux体系结构上构建32位python模块,或者如何在64位linux体系结构中构建python本身,从而使软件包安装变得容易,同时又将tcl/tk集成到32位linux体系结构中,有人有什么好主意吗

干杯


Wim

要以您尝试的方式构建模块,您需要在尝试编译模块之前设置CFLAGS=-m32和LDFLAGS=-m32

例如:

CFLAGS=-m32 LDFLAGS=-m32 python setup.py install

您需要使用32位python才能加载32位模块(许多模块都是共享库)。另外,编译和链接都需要使用
gcc
-m32选项。感谢您的回复。正如我提到的,我已经安装了32位版本的tcl和python(2.7)。问题是如何在x86_64机器上为这个32位版本的python构建32位模块。然后尝试一致地使用
-m32
,并使用32位python调用distutils。我想我首先也会做同样的事情来获得一个32位python?