Como instalar numpy e scipy para python?

36

Estou cansado de tentar instalar numpy e scipy para o phyton 2.7.5, preciso desta versão do python porque meu objetivo final é instalar as classes ( http://class-code.net/ ) e montepython ( http: // montepython .net / ).

(Eu tenho o ubuntu 12.04)

Quando tentei importar numpy ou scipy, sempre recebo o seguinte erro:

$ 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 me livrar do erro, tentei:

  1. Satisfazer os requisitos de python: $ sudo apt-get install build-essential python-dev gfortran
  2. Instale com o apt-get: $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
  3. Instale o requisito com o pip: $ sudo pip install requests
  4. ... e tentou instalar com o pip: $ sudo pip install numpye$ sudo pip install scipy
  5. Eu já tenho o ambiente var: export PYTHONPATH=/usr/lib/python2.7/dist-packages:${PYTHONPATH} a última vez que instalei o numpy e o scipy (na versão anterior do ubuntu 10.x) funcionou para mim.
  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" e instale os dois com pip como em (4)

    Mas agora parece que o servidor de python-distribute.org está inativo. Eu recebi o seguinte erro:

    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. Eu também tinha tentado instalar numpy e scipy do synaptic e do Ubuntu software center

Eu falhei em cada uma dessas tentativas e agora não sei o que fazer. Estou esquecendo de algo? Como posso instalar o numpy e o scipy corretamente para python? Qualquer ideia será apreciada.

quando eu faço

echo $PYTHONPATH

eu recebo

/usr/lib/python2.7/dist-packages
Jorge
fonte
Poderia, por favor, adicionar a saída de echo $PYTHONPATHsua pergunta. Obrigado :-)
MadMike 15/10
Talvez isso possa ajudar: effbot.org/pyfaq/…
Rmano 15/10
Ok, @MadMike Eu tenho um problema com $PYTHONPATHeu já apaguei minhas definições .bashrc, mas ainda tenho uma definição em outro lugar porque ainda tenho o env var $PYTHONPATHpara o qual recebo: bash: /usr/lib/python2.7/dist-packages:: No such file or directory(dois pontos duplos) ...
Jorge
Já corrijo escrevendo no .bashrcarquivo export PYTHONPATH=/usr/lib/python2.7/dist-packages... Faço o que o UCS4 build / UCS2 compilam como @Rmano suger, mas continuo tendo o mesmo problema em ambos os casos ...: \
Jorge
11
Os créditos devem ir para @Rmano. Houve um problema com uma versão com erros de numpy e scipy. Com a versão atualizada, tudo funciona como esperado.
21313 MadMike

Respostas:

41

Ok, vamos seguir o guia de instalação :

  1. Diz que você precisa do python 2.7 (que você já possui):

    $ python --version
    Python 2.7.4
  2. Então diz que você também precisa do pacote numpy, versão> = 1.4.1:

    política do apt-cache python-numpy
    python-numpy:
    Instalado: (nenhum)
    Candidato: 1: 1.7.1-1ubuntu1
    Tabela de versão:
     1: 1.7.1-1ubuntu1 0
        500 pacotes http://archive.ubuntu.com/ubuntu/ raring / main amd64

    Como você pode ver, eu tenho a versão numpy disponível 1.7.1, então vamos prosseguir com a instalação:

    sudo apt-get install python-numpy
  3. Agora ele diz que precisamos de cython, vamos verificar se esse pacote está disponível:

    política de apt-cache cython
    cython:
    Instalado: (nenhum)
    Candidato: 0.17.4-0ubuntu1
    Tabela de versão:
     0.17.4-0ubuntu1 0
        500 pacotes http://archive.ubuntu.com/ubuntu/ raring / main amd64

    Nós temos, instalamos:

    sudo apt-get install cython

    Por favor, observe que existem outros pacotes dependentes que estão sendo instalados também.

  4. Curiosamente, também precisamos do módulo scipy:

    sudo apt-get install python-scipy
  5. Teste . Abra o python em um terminal e digite o seguinte:

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

    O acima, tem que ser sem erros. Se algo der errado, suba e leia o guia novamente, você esqueceu / pulou um passo.

  6. Fazendo o download das fontes CLASS de sua página, vá para o diretório no terminal, descompacte-o e faça-o:

    cd onde / o / tar / está
    tar zxf class_v2.0.2.tar.gz
    cd class_v2.0.2
    faço

    Aqui vamos esperar até que esteja completo. Feito isso, vamos ao diretório python e iniciamos a mágica. Sem sair dos diretórios, execute o seguinte:

    cd python
    compilação python setup.py
    python setup.py install --user

    Agora temos o CLASS instalado em nosso diretório de usuários. Nós devemos testá-lo!

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

    Tudo é agradável e acolhedor até aqui.

  7. Agora, na hora da verdade, baixe o arquivo monthypython tarball no diretório de código:

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

    Nas instruções de instalação estão algumas notas que não são relevantes neste caso peculiar (uma nova instalação), mas isso pode ser importante quando você atualiza o montepython.

  8. Essa mudança é importante. Você se lembra onde você instalou o CLASS? Agora você deve dizer ao Monte Python onde é isso. No meu caso /home/braiam/src/class_v2.0.2/class, o seu pode ser diferente. Você pode usar findpara procurá-lo:

    find ~ -name class -print

    Bem, agora eu modifico o default.confarquivo usando o que quiser (usarei o nano) e modifico o rootcaminho, para que o arquivo completo tenha a seguinte aparência:

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

    Salve o arquivo e saia.

  9. Teste montepython! Se tudo estiver ok, você poderá executar code/MontePython.py --helpno diretório montepythong e tudo deverá executar:

    ~ / src / montepython $ code / MontePython.py --help
    uso: MontePython.py [-h] [-N número de etapas] [-o pasta de saída]
                      [-p arquivo param de entrada] [-c input cov matrix]
                      [-j método de salto] [-f fator de salto]
                      [-conf configuration file] [-chain_number chain number]
                      [-r restart from chain] [-bf restart do arquivo mais adequado]
                      [-info [informações de cálculo do arquivo desejado [informações de cálculo do arquivo desejado ...]]]
                      [-bins número desejado de bandejas, o padrão é 20] [-no_mean]
                      [pasta de comparação comp]
                      [-extra arquivo de plotagem para necessidades personalizadas] [-noplot] [-all]
                      [extensão de alteração de texto para o arquivo de saída]
                      [-fontsize o tamanho da fonte desejado, o padrão é 15]
                      [-ticksize tamanho desejado, o padrão é 13]
    
    Monte Python, um código de Monte Carlo em Python

    argumentos opcionais: -h, --help mostra esta mensagem de ajuda e sai -N número de etapas -o pasta de saída -p arquivo param de entrada -c matriz cov de entrada -j método de salto -f fator de salto arquivo de configuração -conf -chain_number número da cadeia -r reinicia da cadeia -bf restart a partir do arquivo de melhor ajuste -info [informações de cálculo do arquivo desejado [informações de cálculo do arquivo desejado ...]] número de caixas desejado, o padrão é 20 -no_mean pasta de comparação de plotagem extra para necessidades personalizadas -noplot -todos extensão de alteração -ext para o arquivo de saída tamanho da fonte desejado, o padrão é 15 -ticksize tamanho desejado, o padrão é 13

Com isso, você tem o montepython instalado e pronto para rodar!

Braiam
fonte
obrigado pela sua resposta. Obviamente, como primeiro passo, sigo o guia de instalação fornecido pelo montepython, infelizmente fico preso no seu passo (5) porque o python não conseguiu encontrar scipy / numpy. Por isso tentei etapas alternativas.
Jorge
11
@JorgeMastache, você deve limpar suas bibliotecas, talvez tenha estragado algum lugar e o python esteja tentando usá-lo. Use um novo usuário (se você não usou sudo) ou faça sudo make uninstallou, no entanto, os programas serão desinstalados.
Braiam
Fui a primeira vez em um ubunutu (novo computador). Eu só quero avisar outros usuários apenas para ter cuidado ao desinstalar o pacote relacionado ao python, pois ele pode mexer com as bibliotecas do ubuntu-desktop ou math. Eu já consigo instalar o montepython reconfigurando / make python e usando as etapas (1) e (6) para instalar o numpy e o scipy, obrigado por suas respostas.
Jorge
11
@JorgeMastache que será uma dor de manter, mas ok.
Braiam