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
Я думаю, что я могу импортировать Numpy из Python3.5, но не из 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. Вы можете использовать его для установки различных библиотек 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
Индикатор на левой стороне должен исчезнуть.
Если что-то пойдет не так с вашей виртуальной средой, просто удалите каталог, в котором она содержится, и начните все сначала.
Примечание. Недостаток использования виртуальных сред заключается в том, что вам всегда нужно активировать и деактивировать их, но это значительно снижает вероятность путаницы в ваших глобально установленных библиотеках и настройках.
У меня была точно такая же проблема. В моей системе Ubuntu установлены python3.6 и python3.7. У меня был установлен numpy с помощью pip3. У меня такая же ошибка, когда я пытался импортировать numpy в python3.7.
Я заметил, что следующая строка номер 1 в / user / bin / pip3:
#!/usr/bin/python3
и мой python3 указывал на /usr/bin/python3.6
Для меня сработало следующее:
- Обновить python3
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<python version> 1
Это заставит pip3 работать для вашей желаемой версии python3
- Удалите numpy, который был установлен для более старого python3
sudo pip3 uninstall numpy
- Установите numpy для желаемой версии python3
sudo pip3 install numpy
Это сработало!
У меня была такая же проблема, я исправил эту ошибку, обновив 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