【问题标题】:compiling 32 bit python modules (e.g. numpy) on 64 bit linux在 64 位 linux 上编译 32 位 python 模块(例如 numpy)
【发布时间】:2012-05-07 08:17:34
【问题描述】:

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

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

是否有人对如何在 64 位 linux 架构上构建 32 位 python 模块,或者如何在 64 位中构建 python 本身有一个绝妙的想法,以便软件包安装很容易,但在 32 位中集成 tcl/tk ?

干杯。

维姆

【问题讨论】:

  • 你需要一个 32 位的 python 才能加载 32 位模块(许多模块是共享库)。另外,编译和链接都需要gcc-m32选项。
  • 感谢您的回复。正如我提到的,我已经安装了 32 位版本的 tcl 和 python (2.7)。问题是如何在 x86_64 机器上为这个 32 位版本的 python 构建 32 位模块。
  • 然后尝试始终使用-m32 并使用 32 位 python 调用 distutils。

标签: python linux x86-64 32-bit distutils


【解决方案1】:

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

例如:

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

【讨论】:

  • 我想我首先要做同样的事情来获得 32 位 Python?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 2013-04-08
  • 2014-07-02
  • 2010-11-11
  • 2014-03-14
  • 1970-01-01
  • 2011-04-12
相关资源
最近更新 更多