
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 numpy
instalou apenas para o seu python3.5.
Em vez de instalar numpy
atravé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 numpy
o seu python3.6.
Instalando pip
:
Instale pip
com o seguinte comando:
apt install python-pip
Observação:Você pode receber um Permission denied
erro. Neste caso, basta prefixar seu comando com, sudo
por exemplo:
sudo apt install python-pip
Em seguida, digite seu terminal pip3.6
para 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 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 deste método é que você numpy
instalou 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 bin
diretó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:
- 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
- Desinstale o numpy que foi instalado para o python3 mais antigo
sudo pip3 uninstall numpy
- 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 numpy
pacote 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