为 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]
)
有人成功地为 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]
)