2012-05-07 89 views
2

在python的测试框架中,我们通过Tkinter与一个用于spirent testcenter的tcl API进行交互。这个spirent testcenter API只有32位可用,这意味着我们的tcl解释器需要32位。我们使用python中的Tkinter来引导tcl API。 (我最近知道一个python驱动程序是针对testcenter发布的,但这也只是32位)。由于Tkinter集成在python中,python安装也需要为32位。在64位linux上编译32位python模块(例如numpy)

我想在CentOS x86_64工作站上运行这个框架。我已经成功安装了32位的testcenter驱动,ActiveTcl和python,并且可以正常工作。然而,测试框架也依赖于大量的python软件包(例如numpy),它们也需要使用32位构建才能使用它们。但我无法弄清楚如何以32位构建这些软件包。我试过将编译器选项-m32传递给distutils构建命令(即python setup.py构建),但很高兴被忽略。似乎有一个-p选项来通过平台,但这只适用于Windows。我也研究过使用32位编译器,但distutils似乎有一个可用编译器的静态列表,只有intel编译器(即商业...)只有32位,我相信。

有没有人有关于如何在64位linux架构上构建32位Python模块或如何在64位构建python本身的聪明想法,以便软件包的安装非常简单,但是在32位中集成了tcl/tk位?

干杯。

维姆

+0

你会需要有一个32位的Python,以便能够加载32位模块(许多模块共享库)。另外,编译和链接都需要'gcc' -m32'选项。 –

+0

感谢您的回复。正如我所提到的,我已经安装了32位版本的tcl和python(2.7)。问题是如何在x86_64机器上为32位版本的python构建32位模块。 – user1379192

+0

然后尝试始终使用'-m32'并使用32位python调用distutils。 –

回答

2

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

例如:

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

我想我会做同样的事情来获得一个32位的Python首先? – schlamar

相关问题