Comment installer numpy et scipy pour python?

36

Je suis fatigué d'essayer d'installer numpy et scipy pour phyton 2.7.5, j'ai besoin de cette version de python car mon objectif final est d'installer la classe ( link ) et montepython ( link ).

(j'ai Ubuntu 12.04)

Lorsque j'essaie d'importer numpy ou scipy, l'erreur suivante s'affiche à chaque fois:

$ 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

Afin de supprimer l'erreur que j'avais essayée:

  1. Satisfaire aux exigences python: $ sudo apt-get install build-essential python-dev gfortran
  2. Installer avec apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Installation requise avec pip: $ sudo pip install requests
  4. ... et essayé d'installer avec pip: $ sudo pip install numpy et $ sudo pip install scipy
  5. j'ai déjà l'environnement var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} La dernière fois que j'ai installé numpy et scipy (dans l'ancienne version 10.x), cela fonctionnait pour moi.
  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" puis installez-les tous les deux avec pip comme dans (4)

    Mais maintenant, il semble que le serveur de python-distribute.org soit en panne. J'ai l'erreur suivante:

    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. J'avais aussi essayé d'installer numpy et scipy à partir du centre logiciel Synaptic et Ubuntu

J'avais échoué dans chacune de ces tentatives et maintenant je ne sais pas quoi faire. Est-ce que je manque quelque chose? Comment obtenir numpy et scipy correctement installés pour python? Toute idée sera appréciée.

quand je le fais

echo $PYTHONPATH

je reçois

/usr/lib/python2.7/dist-packages
    
posée Jorge 15.10.2013 - 07:42
la source

1 réponse

41

Ok, suivons le guide d'installation :

  1. Il est indiqué que vous avez besoin de Python 2.7 (que vous avez déjà):

    $ python --version
    Python 2.7.4
    
  2. Ensuite, il est indiqué que vous avez également besoin du package numpy, version > = 1.4.1:

    .
    apt-cache policy python-numpy
    python-numpy:
    Installed: (none)
    Candidate: 1:1.7.1-1ubuntu1
    Version table:
     1:1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring/main amd64 Packages

    Comme vous pouvez le constater, j’ai la version 1.7.1 de Numpy disponible, nous allons donc procéder à son installation:

    sudo apt-get install python-numpy
    
  3. Maintenant, il est dit que nous avons besoin de Cython, vérifions si ce paquet est disponible:

    apt-cache policy cython
    cython:
    Installed: (none)
    Candidate: 0.17.4-0ubuntu1
    Version table:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring/main amd64 Packages

    Nous l'avons, nous l'installons:

    sudo apt-get install cython
    

    S'il vous plaît, notez qu'il y a d'autres packages qui sont des dépendances qui sont également installés.

  4. Curieusement, nous avons également besoin du module scipy:

    sudo apt-get install python-scipy
    
  5. Test . Ouvrez python dans un terminal et tapez ce qui suit:

    $ 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()
    

    Ce qui précède doit être sans erreur. Si quelque chose ne va pas, relisez le guide et relisez-le, vous avez oublié / sauté une étape.

  6. En téléchargeant les sources CLASS à partir de leur page, accédez au répertoire du terminal, décompressez-le et créez-le:

    cd where/the/tar/is
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    make

    Ici, nous attendrons que ce soit terminé. Une fois que cela est fait, nous allons dans le répertoire python et commençons la magie. Sans quitter les répertoires, lancez ceci:

    cd python
    python setup.py build
    python setup.py install --user

    CLASS est maintenant installé dans notre répertoire utilisateur. Nous devrions le tester!

    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()
    

    Tout est sympa jusque là.

  7. Maintenant le temps de vérité, téléchargez monthypython dans le répertoire de votre code:

    cd ~
    mkdir code
    cd code
    wget https://www.dropbox.com/s/l7mnhwsktp1m8b5/montepython_v1.2.5.tar.bz2?dl=1 -O montepython_v1.2.5.tar.bz2
    tar jxf montepython_v1.2.5.tar.bz2

    Dans les instructions d'installation, , certaines notes ne sont pas pertinentes pour cas particulier (une nouvelle installation), mais cela peut être important lorsque vous mettez à jour montepython.

  8. Ce changement est important. Vous vous rappelez où vous avez installé CLASS? Maintenant, vous devriez dire à Monte Python où cela se trouve. Dans mon cas, c’est /home/braiam/src/class_v2.0.2/class , le vôtre peut être différent. Vous pouvez utiliser find pour le rechercher:

    find ~ -name class -print
    

    Eh bien, maintenant je modifie le fichier default.conf en utilisant ce que vous voulez (je vais utiliser nano) et modifie le chemin root , de sorte que le fichier complet ressemble à ceci:

    # 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/'
    

    Enregistrez le fichier et quittez.

  9. Testez montepython! Si tout s'est bien passé, vous devriez pouvoir exécuter code/MontePython.py --help dans votre répertoire montepythong et tout devrait être exécuté:

    ~/src/montepython$ code/MontePython.py --help
    usage: MontePython.py [-h] [-N number of steps] [-o output folder]
                      [-p input param file] [-c input cov matrix]
                      [-j jumping method] [-f jumping factor]
                      [-conf configuration file] [-chain_number chain number]
                      [-r restart from chain] [-bf restart from best fit file]
                      [-info [compute information of desired file [compute information of desired file ...]]]
                      [-bins desired number of bins, default is 20] [-no_mean]
                      [-comp comparison folder]
                      [-extra plot file for custom needs] [-noplot] [-all]
                      [-ext change extension for the output file]
                      [-fontsize desired fontsize, default is 15]
                      [-ticksize desired ticksize, default is 13]
    
    Monte Python, a Monte Carlo code in Python
    
    optional arguments:
    -h, --help            show this help message and exit
    -N number of steps
    -o output folder
    -p input param file
    -c input cov matrix
    -j jumping method
    -f jumping factor
    -conf configuration file
    -chain_number chain number
    -r restart from chain
    -bf restart from best fit file
    -info [compute information of desired file [compute information of desired file ...]]
    -bins desired number of bins, default is 20
    -no_mean
    -comp comparison folder
    -extra plot file for custom needs
    -noplot
    -all
    -ext change extension for the output file
    -fontsize desired fontsize, default is 15
    -ticksize desired ticksize, default is 13

Grâce à cela, vous avez installé Montepython et vous êtes prêt à rouler!

    
réponse donnée Braiam 16.10.2013 - 01:45
la source

Lire d'autres questions sur les étiquettes