如何在不安装的情况下使用numpy?

时间:2011-08-07 23:26:33

标签: python numpy launchpad

我控制台访问我没有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

cat / proc / version

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 个答案:

答案 0 :(得分:5)

如果您可以解决所有依赖关系,可能可以使用dpkg在$ HOME中安装它。 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源代码tarball,使用{编译{1}}然后只需将python setup.py build(在我的系统上,directory_where_you_extracted_the_tarball/build/numpy/lib.OS-arch-PythonVersion)中的所有内容复制到目标计算机上您选择的目录中。然后,只需将该目录添加到$ PYTHONPATH即可。请记住复制内容,而不是整个目录(lib.linux-x86_64-2.6/然后将tar.bz2发送到远程计算机并将其解压缩到您选择的目录中。)

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

手工制作Numpy虽然不适合胆小的人,所以这可能导致大量的头部撞击和撕裂。

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

您可以使用python的distutilspython setup.py运行的那个)install to a local directory,必须将其添加到PYTHONPATH。如,

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

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