
설명대로 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
아마도 numpy
python3.5용으로만 설치했을 것입니다.
numpy
Ubuntu 리포지토리를 통해 설치하는 대신 pip
.
이것은 Python의 패키지 관리자입니다. 이를 사용하여 numpy
.
그런 다음 이를 사용하여 numpy
python3.6을 설치합니다.
설치 pip
:
pip
다음 명령을 사용하여 설치하십시오 .
apt install python-pip
메모:오류 가 발생할 수 있습니다 Permission denied
. 이 경우 명령 앞에 sudo
다음과 같은 접두어를 붙이면 됩니다.
sudo apt install python-pip
그런 다음 터미널에 입력하여 pip3.6
올바르게 설치되었는지 확인하십시오. 사용 가능한 모든 매개변수가 나열되어야 합니다.
여기에서는 일반적으로 두 가지 옵션이 있습니다.
옵션 1 - numpy
전역적으로 설치
numpy
Python3.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을 가리키고 있었습니다.
다음은 나를 위해 일했습니다.
- Python3 업데이트
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<python version> 1
이렇게 하면 원하는 Python3 버전에서 pip3이 작동하게 됩니다.
- 이전 Python3용으로 설치된 numpy를 제거합니다.
sudo pip3 uninstall numpy
- 원하는 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