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