¿Cómo instalar numpy y scipy para python?

36

Estoy cansado de intentar instalar numpy and scipy para phyton 2.7.5, necesito esta versión de python porque mi objetivo final es instalar class ( http://class-code.net/ ) y montepython ( http: // montepython .net / ).

(Tengo ubuntu 12.04)

Cuando intenté importar numpy o scipy, recibo el siguiente error cada vez:

$ 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

Para deshacerme del error que había intentado:

  1. Satisfacer el requisito de Python: $ sudo apt-get install build-essential python-dev gfortran
  2. Instalar con apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Instalar requisito con pip: $ sudo pip install requests
  4. ... e intenté instalar con pip: $ sudo pip install numpyy$ sudo pip install scipy
  5. Ya tengo el entorno var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} la última vez que instalé numpy and scipy (en la versión anterior de ubuntu 10.x) esto funcionó para mí.
  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" y luego instalarlos con pip como en (4)

    Pero ahora parece que el servidor de python-distribute.org está caído. Tuve el siguiente error:

    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. También intenté instalar numpy y scipy desde synaptic y el centro de software de Ubuntu

Había fallado en cada uno de estos intentos y ahora no sé qué hacer. ¿Me estoy perdiendo de algo? ¿Cómo puedo instalar numpy y scipy correctamente para python? Cualquier idea será apreciada.

Cuando lo hago

echo $PYTHONPATH

yo obtengo

/usr/lib/python2.7/dist-packages
Jorge
fuente
Podría agregar el resultado de echo $PYTHONPATHsu pregunta. Gracias :-)
MadMike
Quizás esto pueda ayudar: effbot.org/pyfaq/…
Rmano
Ok, @MadMike Tengo un problema con el $PYTHONPATHque ya elimino mis definiciones .bashrc, pero todavía tengo una definición en otro lugar porque todavía tengo la env $PYTHONPATHpara la cual obtengo: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(dos puntos) ...
Jorge
Ya corrijo escribiendo en el .bashrcarchivo export PYTHONPATH=/usr/lib/python2.7/dist-packages... Hago lo que compila UCS4 / UCS2 como @Rmano sugest pero sigo teniendo el mismo problema en ambos casos ...: \
Jorge
1
Los créditos deben ir a @Rmano. Hubo un problema con una versión con errores de numpy y scipy. Con la versión actualizada todo funciona como se esperaba.
MadMike

Respuestas:

41

Ok, sigamos el guía de instalación :

  1. Dice que necesita Python 2.7 (que ya tiene):

    $ python --version
    Python 2.7.4
  2. Luego dice que también necesita el paquete numpy, versión> = 1.4.1:

    política de apt-cache python-numpy
    python-numpy:
    Instalado: (ninguno)
    Candidato: 1: 1.7.1-1ubuntu1
    Tabla de versiones:
     1: 1.7.1-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 Paquetes

    Como puede ver, tengo disponible la versión 1.7.1 de numpy, así que procedamos a instalarlo:

    sudo apt-get install python-numpy
  3. Ahora dice que necesitamos cython, verifiquemos si ese paquete está disponible:

    política de caché apt-cython
    cython:
    Instalado: (ninguno)
    Candidato: 0.17.4-0ubuntu1
    Tabla de versiones:
     0.17.4-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ raring / main amd64 Paquetes

    Lo tenemos, lo instalamos:

    sudo apt-get install cython

    Tenga en cuenta que también se están instalando otros paquetes que son dependientes.

  4. Por extraño que parezca, también necesitamos el módulo scipy:

    sudo apt-get install python-scipy
  5. Las pruebas . Abra Python en una terminal y escriba lo siguiente:

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

    Lo anterior, debe ser sin errores. Si algo salió mal, sube y lee la guía nuevamente, olvidaste / esquiaste un paso.

  6. Descargando las fuentes CLASS de su página, vaya al directorio en la terminal, descomprímalo y hágalo:

    cd donde / the / tar / is
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    hacer

    Aquí esperaremos hasta que se complete. Una vez hecho esto, vamos al directorio de Python y comenzamos la magia. Sin moverse de los directorios, ejecute esto:

    cd python
    Python setup.py build
    instalación de python.py --user

    Ahora tenemos CLASS instalado en nuestro directorio de usuarios. ¡Deberíamos probarlo!

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

    Todo es agradable y acogedor hasta aquí.

  7. Ahora es el momento de la verdad, descargue el tarball de monthypython en su directorio de códigos:

    cd ~
    código mkdir
    código de 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

    En las instrucciones de instalación hay algunas notas que no son relevantes en este caso peculiar (una nueva instalación) pero puede ser importante cuando actualiza montepython.

  8. Este cambio es importante. ¿Recuerdas dónde instalaste CLASS? Ahora deberías decirle a Monte Python dónde es eso. En mi caso /home/braiam/src/class_v2.0.2/class, el tuyo puede ser diferente. Puedes usar findpara buscarlo:

    find ~ -name class -print

    Bueno, ahora modifico el default.confarchivo usando lo que quiera (usaré nano) y modifico la rootruta, para que el archivo completo se vea así:

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

    Guarda el archivo y cierra.

  9. Prueba montepython! Si todo estaba bien, debería poder ejecutar code/MontePython.py --helpen su directorio montepythong y todo debería ejecutarse:

    ~ / src / montepython $ code / MontePython.py --help
    uso: MontePython.py [-h] [-N número de pasos] [-o carpeta de salida]
                      [-p archivo de parámetros de entrada] [-c matriz de entrada cov]
                      [-j método de salto] [-f factor de salto]
                      [-conf archivo de configuración] [-chain_number número de cadena]
                      [-r reiniciar desde la cadena] [-bf reiniciar desde el archivo de mejor ajuste]
                      [-info [calcular información del archivo deseado [calcular información del archivo deseado ...]]]
                      [-bins número deseado de bins, el valor predeterminado es 20] [-no_mean]
                      [carpeta de comparación -comp]
                      [-extra archivo de trazado para necesidades personalizadas] [-noplot] [-todos]
                      [-extensión de cambio de texto para el archivo de salida]
                      [-fontsize tamaño de fuente deseado, el valor predeterminado es 15]
                      [-ticksize ticksize deseado, el valor predeterminado es 13]
    
    Monte Python, un código de Monte Carlo en Python

    argumentos opcionales: -h, - ayuda a mostrar este mensaje de ayuda y salir -N cantidad de pasos -o carpeta de salida -p archivo de parámetros de entrada -c matriz de entrada cov -j método de salto -f factor de salto -conf archivo de configuración -cadena_number número de cadena -r reiniciar desde la cadena -bf reiniciar desde el archivo de mejor ajuste -info [calcular información del archivo deseado [calcular información del archivo deseado ...]] -bins número deseado de bins, el valor predeterminado es 20 -sin modo -comp carpeta de comparación -archivo de trazado adicional para necesidades personalizadas -noplot -todos -extensión de cambio de texto para el archivo de salida -fontsize tamaño de fuente deseado, el valor predeterminado es 15 -ticksize ticksize deseado, el valor predeterminado es 13

¡Con esto, tienes montepython instalado y listo para rodar!

Braiam
fuente
gracias por tu respuesta. Por supuesto, como primer paso sigo la guía de instalación dada por montepython, desafortunadamente me atasco en su paso (5) porque python no pudo encontrar scipy / numpy. Por eso probé pasos alternativos.
Jorge
1
@JorgeMastache deberías limpiar tus bibliotecas, tal vez te equivocaste en algún lugar y Python está tratando de usarlo. Use un nuevo usuario (si no lo usó sudo) o hágalo sudo make uninstallo, sin embargo, los programas se desinstalan.
Braiam
Era la primera vez que instalo en un nuevo ubunutu (computadora nueva). Solo quiero advertir a otros usuarios solo por tener cuidado al desinstalar el paquete relacionado con Python porque puede interferir con su ubuntu-desktop o bibliotecas matemáticas. Ya logré instalar montepython volviendo a configurar / hacer python y usando mis pasos (1) y (6) para instalar numpy y scipy, gracias por sus respuestas.
Jorge
1
@JorgeMastache será difícil de mantener, pero está bien.
Braiam