ImportError: не может импортировать имя 'мультимассив'

Я установил 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
задан 30 May 2018 в 18:23

3 ответа

Вы, вероятно, имеете numpy установленный только для Вашего python3.5.

Вместо установки numpy через репозитории Ubuntu Вы могли попытаться установить и использовать pip.
Это - диспетчер пакетов Python. Можно использовать его для установки различных библиотек Python как numpy.
Затем используйте его для установки numpy для Вашего python3.6.

Установка pip:

Установка pip со следующей командой:

apt install python-pip

Примечание: Можно получить a 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
ответ дан 7 December 2019 в 13:24

У меня была та же проблема, я зафиксировал эту ошибку путем обновления 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
0
ответ дан 7 December 2019 в 13:24

У меня была точно такая же проблема. В моей системе Ubuntu установлены python3.6 и python3.7. У меня был установлен numpy с помощью pip3. Я получил ту же ошибку, когда попытался импортировать numpy в python3.7.

Я заметил, что следующая строка номер 1 в /user/bin/pip3 — это

#!/usr/bin/python3

и мой python3 указывал на /usr/bin/python3.6

У меня сработало следующее:

  1. Обновите python3

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/<версия python> 1

Это заставит pip3 работать с нужной вам версией python3

  1. Удалите numpy, который был установлен для более старой версии python3

sudo pip3 uninstall numpy

  1. Установите numpy для нужной версии python3

sudo pip3 install numpy

Это сработало!

1
ответ дан 19 April 2020 в 08:13

Другие вопросы по тегам:

Похожие вопросы: