如何不安装numpy就使用它?

9 投票
5 回答
9582 浏览
提问于 2025-04-16 23:05

我可以访问一台电脑,但我没有管理员权限,也不能使用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.
>>>

谢谢!

更新:
系统管理员不愿意在这台机器上安装任何软件(这是一台虚拟专用服务器,我猜他们有一个标准的部署镜像)。他们非常谨慎,甚至不告诉我他们使用的是哪种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

5 个回答

1

你可以试着在一台和你现在用的机器架构相似的电脑上设置一个虚拟环境。然后在你的VPS机器上本地安装这个虚拟环境,再把环境复制过去试试。

3

我不太确定这个方法是否有效,但Enthought提供了一个免费的EPD版本,其中包含了numpy和scipy。这可能不需要编译器来安装(因为我所知道的,它只是安装一些现成的程序),而且不需要管理员权限:

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

5

如果你能解决所有的依赖关系,你可能可以在你的$HOME目录下使用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可不是一件简单的事,所以这可能会让你感到很沮丧。

撰写回答