Установка 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
  1. Открыл 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
  1. Открыл Python 2.7.13 и набрал:

    import numpy

Никаких ошибок и предупреждений не было.

  1. Проверено, было ли 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:

  • удалить Python 2.7.13

  • Установите Python 2.7.13 с помощью python-2.7.13.amd64.msi

  • Установлен numpy-1.12.0+mkl-cp27-cp27m-win_amd64.whl из http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, используя следующую строку в окне команд:

    pip install 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, используя следующую строку в окне команд

    pip install scipy-0.18.1-cp27-cp27m-win_amd64.whl

Оба 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

Я исправил эту проблему с помощью следующих шагов:

  1. Создание и активация новой среды conda
  2. Установка numpy в среде
  3. Затем, используя эту среду для моего проекта

Я использовал PyCharm чтобы выполнить (3), я просто установил интерпретатор проекта равным интерпретатору Python в новой среде, которую я создал в (1).