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 ( http://class-code.net/ ) et montepython ( http: // montepython .net / ).

(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 me débarrasser de l'erreur j'avais essayé:

  1. Satisfaire aux exigences du python: $ sudo apt-get install build-essential python-dev gfortran
  2. Installez 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 numpyet$ 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 un pip comme dans (4)

    Mais maintenant, il semble que le serveur de python-distribute.org soit en panne. J'ai eu 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 logiciel Synaptic et du centre logiciel 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 fais

echo $PYTHONPATH

Je reçois

/usr/lib/python2.7/dist-packages
Jorge
la source
Pourriez-vous s'il vous plaît ajouter le résultat de echo $PYTHONPATHà votre question. Merci :-)
MadMike
Peut-être que cela peut aider: effbot.org/pyfaq/…
Rmano
Ok, @MadMike j'ai un problème avec $PYTHONPATHje supprime déjà mes définitions .bashrc, mais j'ai toujours une définition quelque part ailleurs parce que j'ai toujours la variable env $PYTHONPATHpour laquelle je reçois: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(double points) ...
Jorge
Je corrige déjà en écrivant dans le .bashrcfichier export PYTHONPATH=/usr/lib/python2.7/dist-packages... Je fais ce que la construction UCS4 / UCS2 construit en tant que @Rmano Sugest, mais le même problème persiste dans les deux cas ...: \
Jorge
1
Les crédits devraient aller à @Rmano. Il y avait un problème avec une version buggy de numpy and scipy. Avec la version mise à niveau, tout fonctionne comme prévu.
MadMike

Réponses:

41

Ok, suivons le guide d'installation :

  1. Il dit 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 paquet numpy, version> = 1.4.1:

    politique apt-cache python-numpy
    python-numpy:
    Installé: (aucun)
    Candidat: 1: 1.7.1-1ubuntu1
    Tableau de version:
     1: 1.7.1-1ubuntu1 0
        500 paquets http://archive.ubuntu.com/ubuntu/ raring / main amd64

    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:

    politique d'apt-cache
    Cython:
    Installé: (aucun)
    Candidat: 0.17.4-0ubuntu1
    Tableau de version:
     0.17.4-0ubuntu1 0
        500 paquets http://archive.ubuntu.com/ubuntu/ raring / main amd64

    Nous l'avons, nous l'installons:

    sudo apt-get install cython

    S'il vous plaît, notez qu'il y a d'autres paquets 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 effectuez-le:

    cd où / le / tar / est
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    faire

    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
    construction de python.py
    python setup.py install --user

    Nous avons maintenant CLASS 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 bien cozzy jusqu'à ici.

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

    cd ~
    code mkdir
    code cd
    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 dans ce 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ù se trouve cela. Dans mon cas /home/braiam/src/class_v2.0.2/class, le vôtre peut être différent. Vous pouvez utiliser findpour chercher:

    find ~ -name class -print

    Bien, maintenant je modifie le default.conffichier en utilisant ce que vous voulez (je vais utiliser nano) et modifie le rootchemin, ainsi le fichier complet ressemblera à 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 code/MontePython.py --helppassé , vous devriez pouvoir exécuter votre répertoire montepythong et tout devrait fonctionner:

    ~ / src / montepython $ code / MontePython.py --help
    utilisation: MontePython.py [-h] [-N nombre d'étapes] [-o dossier de sortie]
                      [-p fichier de paramètres d'entrée] [-c matrice de cov d'entrée]
                      [-j méthode de saut] [-f facteur de saut]
                      [fichier de configuration -conf] [numéro de chaîne du numéro de chaîne]
                      [-r redémarrer à partir de la chaîne] [-bf redémarrer à partir du fichier le mieux ajusté]
                      [-info [informations de calcul du fichier souhaité [informations de calcul du fichier souhaité ...]]]
                      [-bins nombre souhaité de bacs, la valeur par défaut est 20] [-no_mean]
                      [dossier de comparaison -comp]
                      [fichier de tracé supplémentaire pour les besoins personnalisés] [-noplot] [-all]
                      [extension de changement de texte pour le fichier de sortie]
                      [-fontsize la taille de police souhaitée, la valeur par défaut est 15]
                      [-ticksize la taille de tick désirée, la valeur par défaut est 13]
    
    Monte Python, un code Monte Carlo en Python

    arguments optionnels: -h, --help affiche ce message d'aide et quitte -N nombre d'étapes -o dossier de sortie -p fichier de paramètres d'entrée -c cov matrice d'entrée -j méthode de saut facteur de saut -conf fichier de configuration -chain_number numéro de chaîne -r redémarrer de la chaîne -bf redémarre à partir du meilleur fichier -info [informations de calcul du fichier souhaité [informations de calcul du fichier souhaité ...]] -bins nombre souhaité de bacs, la valeur par défaut est 20 -aucune signification dossier de comparaison -comp fichier de tracé extra pour des besoins personnalisés -nouveau -tout -ext change extension pour le fichier de sortie -fontsize la taille de police souhaitée, la valeur par défaut est 15 Choisissez la taille désirée, la valeur par défaut est 13

Avec cela, vous avez montepython installé et prêt à rouler!

Braiam
la source
Merci pour votre réponse. Bien sûr, dans un premier temps, je suis le guide d’installation donné par montepython. Malheureusement, je suis bloqué dans votre étape (5) car python n’a pas pu trouver scipy / numpy. C'est pourquoi j'ai essayé des étapes alternatives.
Jorge
1
@ JorgeMastache, vous devriez nettoyer vos bibliothèques, peut-être que vous vous êtes trompé quelque part et que python essaye de l'utiliser. Utilisez un nouvel utilisateur (si vous ne l’avez pas utilisé sudo) ou faites sudo make uninstallou de quelque manière que les programmes soient désinstallés.
Braiam
J'étais la première installation dans un nouvel ubunutu (nouvel ordinateur). Je tiens simplement à avertir les autres utilisateurs de la prudence lors de la désinstallation du paquetage relatif à python, car cela pourrait perturber votre bibliothèque ubuntu-desktop ou math. Je parviens déjà à installer montepython en reconfigurant / make python et en utilisant mes étapes step (1) et (6) afin d’installer numpy et scipy, merci pour vos réponses.
Jorge
1
@ JorgeMastache ça va être une douleur à maintenir, mais ok.
Braiam