为 AIX 的 python3 编译 numpy 工作但导入失败

compiling numpy for python3 for AIX works but import fails

有人成功地为 AIX6.1 或 7.1 构建了 numpy 包吗?

我下载了 numpy-1.9.2.tar.gz 和 运行 "python3 setup.py install".

patching a few source files之后编译。但是,当我尝试导入 numpy 时,它说:

ImportError:    0509-022 Cannot load module /python3.4/site-packages/numpy/core/multiarray.so.
       0509-187 The local-exec model was used for thread-local
                  storage, but the module is not the main program.
       0509-193 Examine the .loader section header with the
                'dump -Hv' command.

我猜它有一些 -fPIC 问题?!?我尝试了 "CFLAGS="-fPIC" python3 setup.py install" 但结果相同。有什么建议么?非常感谢!!

我今天又试了一次,成功了。这确实是一个 -fPIC 问题。我发现 "python3 setup.py clean" 不会清除所有 *.so 文件,因此我之前的实验实际上从未重新构建这些文件。 所以这是你需要做的:

(0) 下载最新的numpy源码包并解压

(1) 确保 Python.h 是以下文件中的第一个包含

numpy/core/src/multiarray/methods.c
numpy/core/src/umath/test_rational.c.src
numpy/core/src/umath/operand_flag_test.c.src

以下根本没有 include Python.h,需要它们才能编译:

numpy/core/src/npysort/heapsort.c.src
numpy/core/src/npysort/quicksort.c.src
numpy/core/src/npysort/mergesort.c.src

(2)

export CC="gcc -fPIC"

(3)

python3 setup.py build

(4)

python3 setup.py install

您正在使用的 python 应该提供该标志。 python -c "import sysconfig; print(sysconfig.get_config_vars('CCSHARED'))" 打印什么?在 "normal" linux python 上它应该打印 [-fPIC])