Установка numpy для Windows 10: не удалось импортировать модуль расширения numarray numpy
Я новичок в Python
и безуспешно numpy
установить numpy
. В настоящее время проблема заключается в чтении сообщения об ошибке, в частности, Importing the multiarray numpy extension module failed
. Я не могу найти это сообщение об ошибке в Интернете и прошу помощи. Полное сообщение об ошибке находится внизу этого поста.
Сначала я подумал, что должен предоставить информацию о системе и версии и описать, что я сделал. Я использую Windows 10
на 64-битной машине и установил Python 2.7.13
с https://www.python.org/downloads/windows/
Я также установил Anaconda
, также для Python 2.7
и 64-битной машины, скачанный здесь https://www.continuum.io/downloads. Anaconda
запускает Python 2.7.12
, а не Python 2.7.13
. Когда я типа import numpy
внутри Anaconda
GUI IPython
не появляются ошибки или предупреждения. Тем не менее, у меня сложилось впечатление, что запуск numpy
из Python 2.7.13
с использованием IDLE (Python GUI)
может быть быстрее в вычислительном отношении. Python 2.7.13
появляется первым в моей инструкции Path.
Я скачал numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl
с http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype. Следующие предложения из этого поста устанавливают numpy из формата wheel на windows ( не поддерживается колесо на этой платформе.) Я переименовал:
numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl
для: numpy-1.12.0rc2+mkl-cp27-none-win32.whl
вручную, нажав на имя и отредактировав его. Переименованный файл находится в папке C:\Python27
Затем я использовал командное окно Windows (cmd), чтобы обновить pip
ввода:
python -m pip install --upgrade pip
В сообщении говорилось, что pip
уже обновлен.
Затем я набрал следующее в окне cmd:
pip install numpy-1.12.0rc2+mkl-cp27-none-win32.whl
В сообщении сказано: Successfully installed numpy-1.12.0rc2+mkl
. (Перед этим я попытался установить файл .whl
используя его оригинальное имя, и получил сообщение об ошибке, что файл не для моей платформы.)
После установки numpy
в Python 2.7.13
я открываю Python
и набираю:
import numpy
Вот полное сообщение об ошибке, которое было возвращено:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import numpy
File "C:\Python27\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 24, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try 'git clean -xdf' (removes all
files not under version control). Otherwise reinstall numpy.
В папке C:\Python27
множество numpy
папок и файлов.
Я также попробовал следующие две команды и получил показанные сообщения:
>>> pip show numpy
SyntaxError: invalid syntax
>>> git clean -xdf
SyntaxError: invalid syntax
>>>
Извините, что этот пост такой длинный, но я не знаю, какие из приведенных выше деталей могут быть наиболее полезны при диагностике проблемы. Я использую Python
около 24 часов, и большую часть этого времени я потратил на попытки установить numpy
в Python 2.7.13
. В основном я использую R
и знаю немного C
Я не пытался установить какие-либо другие библиотеки или пакеты Python
. Возможно, мне не хватает зависимостей, требуемых numpy
. Спасибо за любой совет или помощь с этой проблемой. Если я могу предоставить дополнительную информацию, пожалуйста, дайте мне знать. Извините, если это дубликат.
Ответы
Ответ 1
В моем случае эта проблема была связана с NumPy. Итак, я удалил NumPy и снова установил его. Чтобы удалить numpy, если у вас уже есть среда conda, мы можем сделать это с помощью conda remove numpy
если эта команда удаляет некоторые другие пакеты, которые также зависят от numpy, то в той же среде, если установлен pip, numpy можно удалить с помощью pip pip uninstall numpy
и чтобы снова скачать его, используйте pip install numpy
. Это, вероятно, должно исправить вашу ошибку.
Ответ 2
Эта проблема широко обсуждалась на https://github.com/numpy/numpy/issues/9272 с обходным решением, которое мне помогло. Это имеет отношение к среде Анаконды, я думаю, что у вас есть.
Цитата: tobigithub прокомментировал 23 июля 2017 года. @Njsmith спасибо, я только что подтвердил использование виртуальной машины в чистой системе Windows 10, которая никогда не видела DLL-библиотеки Intel MKL, numpy или conda, все в порядке и работает нормально. Я просто озадачен, как внезапно перестал работать NumPy, могут быть третьи лица. Вероятно, нужно еще немного покопаться, давайте посмотрим, что мы можем выяснить, чтобы разобраться с любой проблемой зависимости.
Решение действительно связано с некоторыми проблемами зависимости DLL в WIN с библиотеками Intel MKL, ошибка импорта numpy была в python 3.6.2 и numpy 1.13.1:
"import numpy" numpy\core_init_.py ", строка 16, из from. import multiarray ImportError: сбой загрузки DLL: указанная процедура не найдена.
Быстрое и грязное решение - скопировать все библиотеки Intel mkl *.dll из подпапки определенных сред (env) (видно из stackoverflow).
<\ Library\bin> в <\ Lib\site-packages\numpy\core>
04/13/2017 12:50 AM 30,277,392 mkl_avx.dll
04/13/2017 12:50 AM 38,253,840 mkl_avx2.dll
04/13/2017 12:50 AM 42,234,640 mkl_avx512.dll
04/13/2017 12:50 AM 45,722,896 mkl_avx512_mic.dll
04/13/2017 12:50 AM 25,369,360 mkl_core.dll
04/13/2017 12:50 AM 24,541,456 mkl_def.dll
04/13/2017 12:50 AM 24,506,640 mkl_intel_thread.dll
04/13/2017 12:50 AM 29,744,400 mkl_mc.dll
04/13/2017 12:50 AM 30,594,320 mkl_mc3.dll
04/13/2017 12:50 AM 12,567,824 mkl_rt.dll
04/13/2017 12:50 AM 11,388,688 mkl_sequential.dll
04/13/2017 12:50 AM 12,575,504 mkl_tbb_thread.dll
04/13/2017 12:50 AM 11,250,960 mkl_vml_avx.dll
04/13/2017 12:50 AM 11,463,952 mkl_vml_avx2.dll
04/13/2017 12:50 AM 10,285,840 mkl_vml_avx512.dll
04/13/2017 12:50 AM 11,692,304 mkl_vml_avx512_mic.dll
04/13/2017 12:50 AM 5,224,208 mkl_vml_cmpt.dll
04/13/2017 12:50 AM 5,345,552 mkl_vml_def.dll
04/13/2017 12:50 AM 9,477,904 mkl_vml_mc.dll
04/13/2017 12:50 AM 9,368,336 mkl_vml_mc2.dll
04/13/2017 12:50 AM 9,593,616 mkl_vml_mc3.dll
Теперь NumPy можно импортировать и работает нормально.
Ответ 3
Кажется, я установил numpy
для Python 2.7.13
на 64-разрядный компьютер Windows 10
, выполнив следующие шаги. Я смог установить numpy
для 32-разрядной или 64-разрядной версии Python 2.7.13
. Предоставляются инструкции для обоих.
В верхней части этого ответа приведены мои инструкции для 32-разрядных Python
.
В середине - мои инструкции для 64-битного Python
.
Внизу приведены мои инструкции для 64-битного Python
с использованием файла колес.
Я подозреваю, что основная проблема в моем исходном сообщении, возможно, возникла из-за того, что я не понял, что, по-видимому, это версия по умолчанию Python
, которая загружается отсюда (https://www.python.org/downloads/) - 32-разрядный.
Для установки numpy
в 32-разрядный Python 2.7.13
-
uninstalled Anaconda
-
удалено Anaconda
из User Variables
в окне Environment Variables
-
установлен Python 2.7.13
с официального сайта Python: https://www.python.org/
-
в окне командной строки:
C:\Пользователи\Общие сведения1 > CD:\python27
-
Попытался обновить pip
в окне команд, хотя pip
был уже обновлен:
python -m pip install -U pip
-
в командном окне использовалась следующая команда, в результате которой появилось огромное количество ошибок:
pip install numpy
-
в окне командной строки:
python -m pip install numpy
Шаг 7, похоже, сработал. Он возвратил следующее сообщение:
C:\Python27>python -m pip install numpy
Collecting numpy
Retrying (Retry(total=4, connect=None, read=None, redirect=None))
after connection broken by 'ProtocolError('Connection aborted.',
error(10054, 'An existing connection was forcibly
closed by the remote host'))': /simple/numpy/
Downloading numpy-1.12.0-cp27-none-win32.whl (6.6MB)
100% |################################| 6.6MB 64kB/s
Installing collected packages: numpy
Successfully installed numpy-1.12.0
-
Открыл Python 2.7.13
и набрал:
import numpy
Вернулась только командная строка. Ошибок и предупреждений не было.
Я еще не пытался использовать любой код, который требует numpy
, но, по крайней мере, он, кажется, был установлен.
Шаг 7 говорит, что был загружен 32-разрядный файл:
numpy-1.12.0-cp27-none-win32.whl
Я не знаю, была ли установлена 32-разрядная версия numpy
или 64-разрядная версия. Возможно, файл представляет собой 64-битную версию, которая была переименована, чтобы сказать, что это 32-разрядная версия, как описано в моем вопросе.
Я набрал Python
(из У меня есть Numpy 32-битный или 64-битный?):
import numpy.distutils.system_info as sysinfo
sysinfo.platform_bits
32
Итак, похоже, была установлена 32-разрядная версия numpy
, хотя моя Python
должна быть 64-разрядной версией (отсюда: Как определить если моя оболочка python выполняется в 32-битном или 64-битном режиме на OS X?:
import platform
platform.architecture()[0]
'32bit'
Возможно, во время установки и удаления Python
я случайно установил 32-разрядную версию в последний раз. Я могу попробовать снова установить Python
и использовать предполагаемую 64-битную версию на этот раз. Надеемся, что те же шаги, что и выше, по-прежнему будут работать.
Возможно, если я хочу 64-битную версию Python 2.7.13
, я должен щелкнуть на следующей официальной веб-странице Python
(здесь: https://www.python.org/downloads/windows/):
Download Windows x86-64 MSI installer
а не на видном (https://www.python.org/downloads/):
Download Python 2.7.13
Мне также интересно узнать, откуда был загружен файл numpy-1.12.0-cp27-none-win32.whl
. Я также предоставлю это, если узнаю. Возможно, он был загружен отсюда: https://pypi.python.org/pypi/numpy
Для установки numpy
в 64-разрядный Python 2.7.13
Вышеупомянутые шаги работали над установкой numpy
для того, что оказалось 32-разрядной версией Python 2.7.13
.
Чтобы установить numpy для 64-разрядной версии Python 2.7.13
, я использовал следующие шаги:
-
удалить Python 2.7.13
-
Загрузить: python-2.7.13.amd64.msi
, нажав на: Download Windows x86-64 MSI installer
отсюда: https://www.python.org/downloads/windows/
-
в окне командной строки:
C:\Пользователи\Общие сведения1 > CD:\python27
-
Попытался обновить pip
в окне команд, хотя pip
был уже обновлен:
python -m pip install -U pip
-
в окне команд использовалась следующая команда, которая на этот раз не возвращала никаких ошибок:
pip install numpy
который возвратил:
C:\Python27>pip install numpy
Collecting numpy
Downloading numpy-1.12.0-cp27-none-win_amd64.whl (7.5MB)
100% |################################| 7.5MB 63kB/s
Installing collected packages: numpy
Successfully installed numpy-1.12.0
-
Открыл Python 2.7.13
и набрал:
import numpy
Никаких ошибок и предупреждений не было.
-
Проверено, было ли numpy
64-разрядным или 32-битным. Это было 64-битное.
импортировать numpy.distutils.system_info как sysinfo
sysinfo.platform_bits
64
Для установки файлов дисков numpy
в Python 2.7.13
После установки numpy
я попытался установить scipy
и получил сообщение об ошибке: numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
(описано здесь Windows Scipy Install: не найдено ресурсов Lapack/Blas).
Я сделал следующее:
Затем я получил указанную здесь scipy
ошибку cannot import name NUMPY_MKL
(ImportError: не могу импортировать имя NUMPY_MKL).
Я загрузил файлы numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
и scipy-0.18.1-cp27-cp27m-win_amd64.whl
отсюда: http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, как предложено VMAtm.
Тогда I:
Оба numpy
и scipy
теперь могут импортировать внутри Python 2.7.13
Обратите внимание, что я разместил scipy-0.18.1-cp27-cp27m-win_amd64.whl
и numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
в папке c:\Python27
до использования вышеупомянутых команд pip
.
C:\>cd\Python27
C:\Python27>pip install numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
Processing c:\python27\numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.12.0+mkl
C:\Python27>pip install scipy-0.18.1-cp27-cp27m-win_amd64.whl
Processing c:\python27\scipy-0.18.1-cp27-cp27m-win_amd64.whl
Installing collected packages: scipy
Successfully installed scipy-0.18.1
C:\Python27>
Ответ 4
Я исправил эту проблему с помощью следующих шагов:
- Создание и активация новой среды
conda
- Установка
numpy
в среде - Затем, используя эту среду для моего проекта
Я использовал PyCharm
чтобы выполнить (3), я просто установил интерпретатор проекта равным интерпретатору Python в новой среде, которую я создал в (1).