4

我在没有 root 权限的远程计算机上有一个帐户,我需要安装 Python 的本地版本(远程计算机的 Python 版本与我拥有的某些代码不兼容),那里有 Numpy 和 Scipy。从昨天开始,我一直在尝试在本地安装 numpy,但没有成功。

我在 /home/myusername/.local/ 中成功安装了本地版本的 Python(2.7.3),所以我通过/home/myusername/.local/bin/python. 我尝试了两种安装 Numpy 的方法:

  1. 我从官网下载了最新的稳定版Numpy,解压,进入解压后的文件夹,做了:/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local. 但是,我收到以下错误,然后是一系列其他错误(源自此错误):

    gcc -pthread -shared build/temp.linux-x86_64-2.7/numpy/core/blasdot/_dotblas.o
    -L/usr/local/lib -Lbuild/temp.linux-x86_64-2.7 -lptf77blas -lptcblas -latlas 
    -o build/lib.linux-x86_64-2.7/numpy/core/_dotblas.so
    /usr/bin/ld: /usr/local/lib/libptcblas.a(cblas_dptgemm.o): relocation 
    R_X86_64_32 against `a local symbol' can not be used when making a shared 
    object; recompile with -fPIC
    

    不知道这意味着什么(除了错误显然与 LAPACK 库有关),我只是执行了与上面相同的命令,但现在按照错误的建议输入 LDFLAGS='-fPIC',即我做了 LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local。但是,我得到了同样的错误(除了在上面的 gcc 命令之后添加了前缀 -fPIC)。

  2. 我尝试使用 pip 安装它,即/home/myusername/.local/bin/pip install numpy在我的本地路径中成功安装 pip 之后执行 /)。但是,我得到完全相同的错误。

我在网上搜索,但似乎没有一个错误与我的相似。我的第一个猜测是,这与一些需要 root 权限才能执行的代码有关,或者可能与 LAPACK 库的版本有关。

帮助,有人吗?

4

3 回答 3

3

错误消息告诉您,您的 ATLAS 库尚未使用该-fPIC标志构建。这意味着它不能链接到像 Python 扩展模块这样的共享库。您需要使用该-fPIC标志重建 ATLAS。ATLAS 文档描述了如何执行此操作。

于 2012-06-05T09:04:23.270 回答
2

从源代码构建有点痛苦。是否可以避免这样做?

如果我们假设您尝试在 x86 计算机(英特尔、AMD 等)上安装,您是否可以将 Python 安装在另一台您拥有 root 权限的 x86 计算机上然后制作 Python 安装的 tar 存档,将 tar 复制到另一台计算机,然后解压缩 tar 存档?

上述问题在于,预构建的 Python 可能具有用于查找库的硬编码路径:它可能需要库在其中/usr/share或其他任何地方。这将是一个 hack,但您可能能够制作chroot监狱并让 Python 运行。

您可能还想看看 Enthought Python Distribution (EPD)。我相信 EPD 安装程序只会询问您希望 EPD 安装在哪里,然后将其安装在那里。

http://www.enthought.com/products/epdgetstart.php?platform=linux

有一个免费版本的环保署。如果您想要 64 位,则必须为 EPD 付费,但如果 32 位适合您,那么您可能只需要 EPD Free。

http://www.enthought.com/products/epd_free.php

PS Enthought 网站似乎拒绝任何不以www.! 这意味着某些 Google 搜索链接不起作用,除非您对其进行编辑以www.在开头插入 。我相信他们很快就会解决这个问题。

于 2012-06-05T01:55:33.317 回答
0

您可能想查看 EasyBuild 以构建启用了 numpy 和 scipy 的本地 Python 版本,请参阅http://hpcugent.github.com/easybuild/

它基本上把所有讨厌的东西都从你身上带走了,你只需要稍微配置一下(指定你希望软件结束的地方,例如),然后你可以用你选择的包构建 Python命令。

于 2012-06-20T13:16:54.483 回答