ImportError: 'multiarray' 이름을 가져올 수 없습니다.

ImportError: 'multiarray' 이름을 가져올 수 없습니다.

설명대로 Python3.6을 설치했습니다.여기:

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

그런 다음 다음과 같이 numpy를 설치했습니다.

sudo apt-get install python3-numpy

Python3.5에서는 numpy를 가져올 수 있지만 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'

이 문제를 해결하는 방법은 무엇입니까?

답변1

아마도 numpypython3.5용으로만 설치했을 것입니다.

numpyUbuntu 리포지토리를 통해 설치하는 대신 pip.
이것은 Python의 패키지 관리자입니다. 이를 사용하여 numpy.
그런 다음 이를 사용하여 numpypython3.6을 설치합니다.

설치 pip:

pip다음 명령을 사용하여 설치하십시오 .

apt install python-pip

메모:오류 가 발생할 수 있습니다 Permission denied. 이 경우 명령 앞에 sudo다음과 같은 접두어를 붙이면 됩니다.

sudo apt install python-pip

그런 다음 터미널에 입력하여 pip3.6올바르게 설치되었는지 확인하십시오. 사용 가능한 모든 매개변수가 나열되어야 합니다.

여기에서는 일반적으로 두 가지 옵션이 있습니다.

옵션 1 - numpy전역적으로 설치

numpyPython3.6용으로 특별히 설치합니다 .

pip3.6 install numpy

메모:다시 한 번 권한 오류가 발생하면 명령 앞에 다음을 붙입니다 sudo.

sudo pip3.6 install numpy

출력:

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

메모:이 방법의 단점은 numpy전역적으로 설치했기 때문에 나중에 다른 버전에서 문제가 발생하는 등 바람직하지 않은 결과가 발생할 수 있다는 것입니다.

옵션 2 - 가상 환경 사용:

이 방법을 사용하면 종속성, 버전 및 권한에 대해 크게 걱정하지 않고 Python 패키지를 설치할 수 있는 격리된 Python 환경, 즉 원할 경우 샌드박스를 만들 수 있습니다.

먼저 가상 환경을 생성하는 데 필요한 모듈을 설치해야 합니다.

sudo pip3.6 install virtualenv

다시 한 번 설치가 성공했는지 확인합니다.

virtualenv --version

오류 메시지 없이 버전을 인쇄해야 합니다.

이제 python3.6용 가상 환경을 만듭니다(참고 - 이를 달성하는 방법은 여러 가지가 있습니다).

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

예를 들어

virtualenv ~/Documents/numpy

해당 디렉터리로 이동합니다. 그 안에는 여러 디렉터리가 있어야 합니다. 우리는 디렉토리를 찾고 있습니다 bin.
이제 해당 가상 환경을 활성화해야 합니다.

source bin/activate

가상 환경의 이름은 터미널 왼쪽에 표시되어야 합니다. 예:

(numpy) user@hostname:numpy$

현재 가상 환경이 활성화되어 있음을 나타냅니다.

좋아, 이제 설치가 필요합니다 numpy:

pip3.6 install numpy

산출:

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

이제 Python 셸을 시작하고 가져오기를 시도해 보세요.

>>> import numpy
>>> 

오류가 없어야 합니다.
이제 작업을 계속할 수 있습니다.

완료되면 가상 환경을 비활성화할 수 있습니다. 다음을 입력하세요.

deactivate

왼쪽에 있는 표시가 사라져야 합니다.

가상 환경에 문제가 발생하면 해당 환경이 포함된 디렉터리를 삭제하고 다시 시작하세요.

메모:가상 환경을 사용할 때의 단점은 항상 활성화하고 비활성화해야 한다는 점이지만 전역적으로 설치된 라이브러리 및 설정을 엉망으로 만드는 변경 사항이 크게 줄어듭니다.

답변2

나는 똑같은 문제를 겪었습니다. Ubuntu 시스템에 python3.6 및 python3.7이 설치되어 있습니다. pip3을 사용하여 numpy를 설치했습니다. Python3.7에서 numpy를 가져오려고 할 때 동일한 오류가 발생했습니다.

나는 다음이 /user/bin/pip3의 줄 번호 1이라는 것을 관찰했습니다.

#!/usr/bin/python3

그리고 내 python3은 /usr/bin/python3.6을 가리키고 있었습니다.

다음은 나를 위해 일했습니다.

  1. Python3 업데이트

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

이렇게 하면 원하는 Python3 버전에서 pip3이 작동하게 됩니다.

  1. 이전 Python3용으로 설치된 numpy를 제거합니다.

sudo pip3 uninstall numpy

  1. 원하는 Python3 버전에 대한 numpy를 설치하십시오.

sudo pip3 install numpy

이것이 효과가 있었습니다!

답변3

동일한 문제가 발생하여 numpy다음과 같이 패키지를 업데이트하여 이 오류를 해결했습니다.

sudo pip install -U numpy


[메모]:

그 이후에 이 오류가 발생한 경우:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

다음 명령을 수행하십시오.

sudo apt-get install python3-tk

관련 정보