
Я установил 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
Индикатор с левой стороны должен исчезнуть.
Если что-то пойдет не так с вашей виртуальной средой, просто удалите каталог, в котором она находится, и начните заново.
Примечание:Недостатком использования виртуальных сред является то, что их всегда нужно активировать и деактивировать, но это значительно снижает вероятность нарушения установленных глобальных библиотек и настроек.
решение2
У меня была точно такая же проблема. У меня установлены python3.6 и python3.7 на моей системе Ubuntu. У меня был установлен numpy с помощью pip3. Я получил ту же ошибку, когда попытался импортировать numpy в python3.7.
Я заметил, что следующая строка номер 1 в /user/bin/pip3 — это
#!/usr/bin/python3
и мой python3 указывал на /usr/bin/python3.6
Мне помогло следующее:
- Обновление питона3
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
Это сработало!
решение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