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

1

Eu instalei o Python3.6 como descrito aqui :

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

Então eu instalei numpy da seguinte forma:

sudo apt-get install python3-numpy

Eu 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 corrigir esse problema?

    
por Billal Begueradj 30.05.2018 / 17:23

1 resposta

2

Você provavelmente tem numpy instalado apenas para o seu python3.5.

Em vez de instalar numpy através dos repositórios do Ubuntu, você pode tentar instalar e usar 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 o numpy para o seu python3.6.

Instalando pip :

Instale pip com o seguinte comando:

apt install python-pip

Observação: você pode receber um erro Permission denied . Nesse caso, basta prefixar seu comando com sudo , por exemplo:

sudo apt install python-pip

Em seguida, digite seu terminal pip3.6 para verificar se você o instalou corretamente. Deve listar todos os seus parâmetros disponíveis.

Existem geralmente duas opções a partir daqui.

Opção 1 - instale numpy globalmente

Instale numpy especificamente 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 desse método é que você tem numpy instalado globalmente, o que pode resultar em efeitos indesejáveis em algum momento no futuro, como problemas com versões diferentes.

Opção 2 - usar um ambiente virtual:

Este método permite que você crie um ambiente Python isolado, uma sandbox se quiser, 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 (FYI - há 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 diretório bin .
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á ativo no momento.

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ê poderá desativar o ambiente virtual. Basta digitar:

deactivate

O indicador no lado esquerdo deve ter desaparecido.

Se algo der errado com seu ambiente virtual, apenas exclua o diretório que o contém e inicie novamente.

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

    
por Brood 30.05.2018 / 18:57