9

我控制台访问我没有 root 或 sudo 权限的计算机。

Python 版本是 2.5.2,numpy 不可用。我不能使用 python setup.py install --user 机器上也没有任何可用的编译器。

我可以以某种方式使用可用的编译包https://edge.launchpad.net/~scipy/+archive/ppa/+packages而不安装它们吗?我尝试直接导入 numpy 模块,但它抱怨:

Python 2.5.2 (r252:60911, Jan  4 2009, 21:59:32)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/home/XXX/temp/python-numpy-1.2.1/numpy/__init__.py", line 121,
 in <module>
    raise ImportError(msg)
ImportError: Error importing numpy: you should not try to import numpy from
        its source directory; please exit the numpy source tree, and relaunch
        your python intepreter from there.
>>>

谢谢!

更新:系统管理员不会在机器上安装任何类型的软件(这是一个 VPS,我猜他们有一个标准的部署映像)。他们是疯狂的偏执狂,他们甚至不会告诉我他们运行的是什么风格的 unix,甚至 Apache 服务的版本号都被混淆了!这是我登录时获得的所有信息:

Linux server1 2.4.22 #4 SMP Wed Nov 5 17:44:16 CET 2003 i686 unknown

并用于编译:

python setup.py install --home=~
[...]
RuntimeError: Broken toolchain: cannot link a simple C program

猫 /proc/版本

Linux version 2.6.32.25-grsec-dh (root@dl345.dinaserver.com) (gcc version 4.3.2
(Debian 4.3.2-1.1) ) #2 SMP Wed Nov 3 13:21:01 CET 2010
4

4 回答 4

5

如果您可以解决所有依赖项,则可以使用dpkg. dpkg不会自动解决依赖关系,因此您可能必须找出安装软件包的正确顺序。下载您感兴趣的 .deb 文件并为每个软件包运行以下命令:

$ dpkg -i --force-not-root --root=$HOME mypackagename.deb

如果您随后将带有新安装 Numpy 的目录添加到 $PYTHONPATH 或 sys.path,则 Numpy 可能会正常工作。

或者,您也许可以从 Numpy 的其他二进制发行版之一(例如Sage)中提取您需要的文件。

Numpy 对它需要哪些版本的依赖项非常挑剔,因此您最好下载适用于您正在使用的特定 Linux 版本的软件包。

最后,考虑询问您的管理员是否会为您安装 Numpy。您会惊讶于一个简单的请求可以解决您所有问题的频率,特别是因为它只是一个 apt-get 命令。

编辑:作为替代方案,如果您可以访问另一台运行相同版本/架构的 Ubuntu/Debian 的机器,您可能可以下载 numpy 源代码压缩包,编译python setup.py build然后复制所有内容directory_where_you_extracted_the_tarball/build/numpy/lib.OS-arch-PythonVersion(在我的系统上,它是lib.linux-x86_64-2.6/) 到您在目标机器上选择的目录。然后,只需将该目录添加到您的 $PYTHONPATH 即可。请记住复制内容,而不是整个目录(tar -jcf np.tar.bz2 /path/to/numpy/build/numpy/lib.OS-arch-PythonVersion/numpy然后将 tar.bz2 获取到远程计算机并将其解压缩到您选择的目录中)。

这里有一些关于如何使用 setuptools 的文档:http: //docs.python.org/install/index.html#how-installation-works

不过,手工构建 Numpy 并不适合胆小的人,所以这可能会导致大量的头撞和头发撕裂。

于 2011-08-07T23:57:58.603 回答
3

我不是 100% 这会起作用,但 Enthought 有一个免费版本的 EPD,其中包含 numpy 和 scipy,可能不需要安装编译器(因为据我所知,它只是安装二进制文件),并且不'不需要root访问权限:

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

于 2011-08-07T23:37:34.067 回答
1

您可以尝试在具有类似架构的类似机器上设置virtualenv环境。然后在 VPS 机器上本地安装 virtualenv 并尝试在那里复制环境。

于 2011-08-08T07:57:02.493 回答
0

您可以使用 python distutilspython setup.py运行)安装到本地目录,必须将其添加到您的PYTHONPATH中。例如,

python setup.py install --prefix=~/local

它使用目录层次结构~/local/lib/python2.x。(或者你可以使用--home=<dir>来避免python2.x部分)

于 2011-08-08T07:14:22.630 回答