如何为 python 安装 numpy 和 scipy?

如何为 python 安装 numpy 和 scipy?

我已经尝试为 phyton 2.7.5 安装 numpy 和 scipy 了,我需要这个版本的 python,因为我的最终目标是安装类(http://class-code.net/) 和 montepython (http://montepython.net/)。

(我有 ubuntu 12.04)

当我尝试导入 numpy 或 scipy 时每次都会出现以下错误:

$ phyton2.7
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
  import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
  from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
  from type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
  import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
  import multiarray
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined        symbol: PyUnicodeUCS4_AsUnicodeEscapeString

>> import scipy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/scipy/__init__.py", line 78, in <module>
  from numpy import show_config as show_numpy_config
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
  import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
  from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
  from type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
  import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
  import multiarray
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString

为了消除错误我曾尝试过:

  1. 满足python要求:$ sudo apt-get install build-essential python-dev gfortran
  2. 使用 apt-get 安装:$ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. 使用 pip 安装要求:$ sudo pip install requests
  4. $ sudo pip install numpy...并尝试使用 pip 安装:$ sudo pip install scipy
  5. 我已经有环境变量:export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} 上次我安装 numpy 和 scipy(在旧版 ubuntu 10.x 中)时,这个对我有用。
  6. sudo sh -c "wget http://python-distribute.org/distribute_setup.py -O- | python" sudo sh -c "wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -O- | python" 然后使用 pip 安装它们,如(4)

    但现在看来python-distribute.org已关闭。我收到以下错误:

    http://python-distribute.org/distribute_setup.py
    Resolving python-distribute.org (python-distribute.org)... failed: Name or service not known.
    wget: unable to resolve host address `python-distribute.org'
    
  7. 我也曾尝试从 synaptic 和 Ubuntu 软件中心安装 numpy 和 scipy

我每次尝试都失败了,现在我不知道该怎么办。我是不是漏掉了什么?如何才能为 Python 正确安装 numpy 和 scipy?任何想法都将不胜感激。

当我做

echo $PYTHONPATH

我明白了

/usr/lib/python2.7/dist-packages

答案1

好的,让我们按照安装指南

  1. 它说你需要 python 2.7 (你已经有了):

    $ python --version
    Python 2.7.4
    
  2. 然后它说你也需要 numpy 包,版本 >= 1.4.1:

    apt-cache 策略 python-numpy
    python-numpy:
    已安装:(无)
    候选:1:1.7.1-1ubuntu1
    版本表:
     1:1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/raring/main amd64 软件包

    如你所见,我有可用的 numpy 版本 1.7.1,因此让我们继续安装它:

    sudo apt-get install python-numpy
    
  3. 现在它说我们需要 cython,让我们检查该包是否可用:

    apt-cache 策略 cython
    cython:
    已安装:(无)
    候选版本:0.17.4-0ubuntu1
    版本表:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/raring/main amd64 软件包

    我们有它,我们安装它:

    sudo apt-get install cython
    

    请注意,还有其他依赖包也正在安装。

  4. 奇怪的是,我们还需要 scipy 模块:

    sudo apt-get install python-scipy
    
  5. 测试. 在终端中打开 python 并输入以下内容:

    $ python
    Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
    [GCC 4.7.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import numpy
    >>> import scipy
    >>> import cython
    >>> exit()
    

    以上,必须没有错误。如果出错了,请重新阅读指南,你忘记/跳过了一步。

  6. 从其页面下载 CLASS 源代码,转到终端中的目录,解压并制作它:

    cd 其中/tar/是
    tar zxf 类_v2.0.2.tar.gz
    cd 类_v2.0.2
    制作

    在这里我们将等待完成。完成后,我们转到 python 目录并启动魔法。无需从目录移动,运行以下命令:

    光盘python
    python setup.py 构建
    python setup.py 安装--用户

    现在我们已经在用户目录中安装了 CLASS。我们应该测试一下!

    python
    Python 2.7.4 (default, Sep 26 2013, 03:20:26)
    [GCC 4.7.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from classy import Class
    >>> exit()
    

    到目前为止,一切都很舒适。

  7. 现在是真相时刻,将 monthypython tarball 下载到你的代码目录中:

    光盘〜
    mkdir 代码
    CD 代码
    wget https://www.dropbox.com/s/l7mnhwsktp1m8b5/montepython_v1.2.5.tar.bz2?dl=1 -O montepython_v1.2.5.tar.bz2
    焦油 jxf montepython_v1.2.5.tar.bz2

    在安装说明中有一些笔记在这种特殊情况下(新安装),这并不相关,但当您更新 montepython 时它可能很重要。

  8. 这个更改很重要。你还记得你在哪里安装了 CLASS 吗?现在你应该告诉 Monte Python 它在哪里。在我的例子中是/home/braiam/src/class_v2.0.2/class,你的可能不同。你可以使用find它来查找它:

    find ~ -name class -print
    

    好吧,现在我default.conf使用任何你喜欢的方法(我将使用 nano)来修改文件并修改路径root,因此完整的文件将如下所示:

    # Fill in the relevant path to your personal distribution. 
    # If you create a new file out of this one, please remember to call
    # MontePython.py with the option '-conf my.conf'
    
    # At minimum, this file should contain one line:
    # ** path['cosmo'] =  path to the cosmological code you are using. Note, if you are
    # using a modified version of class, be sure that the path contains the word
    # class, otherwise the code might not recognise it.
    
    # If you want to use a data folder different from the one present in the folder
    # you are executing the code, please also add:
    # ** path['data']  =  /path/to/the/other/data/
    
    root = '/home/braiam/src/class_v2.0.2/'
    
    path['cosmo']           = root+'/class/'
    

    保存文件并退出。

  9. 测试 montepython!如果一切正常,您应该能够code/MontePython.py --help在 montepythong 目录中运行,并且一切都应该运行:

    ~/src/montepython$ code/MontePython.py --help
    用法:MontePython.py [-h] [-N 步骤数] [-o 输出文件夹]
                      [-p 输入参数文件] [-c 输入 cov 矩阵]
                      [-j 跳跃方法] [-f 跳跃因子]
                      [-conf 配置文件] [-chain_number链号]
                      [-r 从链重新启动] [-bf 从最适合的文件重新启动]
                      [-info [计算所需文件的信息 [计算所需文件的信息 ...]]]
                      [-bins 所需的箱数,默认为 20] [-no_mean]
                      [-comp 比较文件夹]
                      [-满足自定义需求的额外绘图文件] [-noplot] [-all]
                      [-ext 更改输出文件的扩展名]
                      [-fontsize 所需字体大小,默认为 15]
                      [-ticksize 所需刻度尺寸,默认为 13]
    
    Monte Python,Python 中的蒙特卡洛代码

    可选参数: -h, --help 显示此帮助消息并退出 -N 步数 -o 输出文件夹 -p 输入参数文件 -c 输入cov矩阵 -j 跳跃方法 -f 跳跃因子 -conf 配置文件 -chain_number 链号 -r 从链重新启动 -bf 从最适合的文件重新启动 -info [计算所需文件的信息 [计算所需文件的信息 ...]] -bins 所需的箱数,默认为 20 -no_mean -comp 比较文件夹 - 满足定制需求的额外绘图文件 -noplot -全部 -ext 更改输出文件的扩展名 -fontsize 所需字体大小,默认为 15 -ticksize 所需的刻度大小,默认值为 13

这样,您就已经安装好了 montepython 并且准备开始运行了!

相关内容