Вопрос 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
2018-05-30 15:23


происхождения




ответы:


Вы, вероятно, имеете 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 (FYI - есть несколько способов добиться этого):

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
2018-05-30 16:57