ImportError: não é possível importar o nome 'multiarray'

ImportError: não é possível importar o nome 'multiarray'

Eu instalei o Python3.6 conforme descritoaqui:

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

Então instalei o numpy da seguinte maneira:

sudo apt-get install python3-numpy

Acho que posso importar numpy do Python3.5, mas não do Python3.6

Python 3.6.5 (default, Mar 29 2018, 03:28:50) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/usr/lib/python3/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/lib/python3/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/lib/python3/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 14, in <module>
    from . import multiarray
ImportError: cannot import name 'multiarray'

Como consertar este problema?

Responder1

Você provavelmente numpyinstalou apenas para o seu python3.5.

Em vez de instalar numpyatravés dos repositórios do Ubuntu, você pode tentar instalar e usar o pip.
Este é o gerenciador de pacotes do python. Você pode usá-lo para instalar várias bibliotecas python como numpy.
Em seguida, use-o para instalar numpyo seu python3.6.

Instalando pip:

Instale pipcom o seguinte comando:

apt install python-pip

Observação:Você pode receber um Permission deniederro. Neste caso, basta prefixar seu comando com, sudopor exemplo:

sudo apt install python-pip

Em seguida, digite seu terminal pip3.6para verificar se ele está instalado corretamente. Ele deve listar todos os parâmetros disponíveis.

Geralmente há duas opções a partir daqui.

Opção 1 – instalar numpyglobalmente

Instale numpyespecificamente para python3.6:

pip3.6 install numpy

Observação:Novamente, se você receber um erro de permissão, prefixe seu comando com sudo:

sudo pip3.6 install numpy

A saída:

Collecting numpy
  Downloading https://files.pythonhosted.org/packages/71/90/ca61e203e0080a8cef7ac21eca199829fa8d997f7c4da3e985b49d0a107d/numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl (12.2MB)
    100% |################################| 12.2MB 1.9MB/s 
Installing collected packages: numpy
Successfully installed numpy-1.14.3

Observação:A desvantagem deste método é que você numpyinstalou globalmente, o que pode resultar em efeitos indesejáveis ​​em algum momento no futuro, como problemas com versões diferentes.

Opção 2 - use um ambiente virtual:

Este método permite que você crie um ambiente Python isolado, um sandbox se preferir, onde você pode instalar pacotes python, sem se preocupar tanto com dependências, versões e permissões.

Primeiro, você precisa instalar o módulo necessário para criar ambientes virtuais:

sudo pip3.6 install virtualenv

Novamente, verifique se a instalação foi bem-sucedida:

virtualenv --version

Deve imprimir a versão sem mensagens de erro.

Agora crie um ambiente virtual para python3.6 (para sua informação - existem várias maneiras de conseguir isso):

virtualenv /directory/to/place/the/virtual/environment

por exemplo

virtualenv ~/Documents/numpy

Navegue até esse diretório. Deve haver vários diretórios dentro dele. Estamos procurando o bindiretório.
Agora você precisa ativar esse ambiente virtual:

source bin/activate

O nome do ambiente virtual deve aparecer no lado esquerdo do seu terminal, por exemplo:

(numpy) user@hostname:numpy$

Indica que o ambiente virtual está atualmente ativo.

Ok, agora você precisa instalar numpy:

pip3.6 install numpy

Saída:

Collecting numpy
  Using cached https://files.pythonhosted.org/packages/71/90/ca61e203e0080a8cef7ac21eca199829fa8d997f7c4da3e985b49d0a107d/numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.14.3

Agora inicie seu shell Python e tente importá-lo:

>>> import numpy
>>> 

Não deve haver erros.
Agora você pode continuar com seu trabalho.

Quando terminar, você pode desativar o ambiente virtual. Basta digitar:

deactivate

O indicador do lado esquerdo deve ter desaparecido.

Se algo der errado com seu ambiente virtual, basta excluir o diretório que o contém e recomeçar.

Observação:A desvantagem de usar ambientes virtuais é que você sempre precisa ativá-los e desativá-los, mas isso reduz drasticamente a possibilidade de bagunçar suas bibliotecas e configurações instaladas globalmente.

Responder2

Eu tive exatamente o mesmo problema. Tenho python3.6 e python3.7 instalados em meu sistema Ubuntu. Eu instalei o numpy usando pip3. Recebi o mesmo erro quando tentei importar numpy em python3.7.

Observei que a seguir está a linha número 1 em /user/bin/pip3 é

#!/usr/bin/python3

e meu python3 estava apontando para /usr/bin/python3.6

O seguinte funcionou para mim:

  1. Atualizar python3

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<python version> 1

Isso fará com que o pip3 funcione para a versão desejada do python3

  1. Desinstale o numpy que foi instalado para o python3 mais antigo

sudo pip3 uninstall numpy

  1. Instale o numpy para a versão desejada do python3

sudo pip3 install numpy

Isso funcionou!

Responder3

Eu tive o mesmo problema, corrigi esse erro atualizando o numpypacote da seguinte forma:

sudo pip install -U numpy


[OBSERVAÇÃO]:

Se depois disso você encontrou este erro:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

Faça o seguinte comando:

sudo apt-get install python3-tk

informação relacionada