Importerror dll load failed while importing psycopg не найден указанный модуль

Обновлено: 06.07.2024

Я пытаюсь установить numpy 1.13.0. Моя машина - это Windows 7, а моя установка Python - это 64-битный Python 3.6.0. Ранее у меня была установлена ​​более старая версия numpy (с сайта Кристофа Гольке), но я удалил ее. У меня также было несколько установок Anaconda, но я их тоже удалил. Однако, когда я пытаюсь импортировать numpy, я получаю указанную выше ошибку:

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

Какие варианты у меня есть, чтобы понять, что здесь не так, прежде чем мне придется удалять каждую установку Python на моем компьютере и выполнять полную переустановку?

Самый полезный комментарий

Windows 10, Python 3.6, установленный с помощью pip, и когда я его импортирую, он выдает мне эту ошибку.

``
C: \ Users \ Kevin> питон
Python 3.6.0 (v3.6.0: 41df79263a11, 23 декабря 2016 г., 07:18:10) [MSC v.1900 32 бит
(Intel)] на win32
Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».

import numpy
Отслеживание (последний вызов последний):
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ core__init __. Py", строка 16, в

из . import multiarray
ImportError: Ошибка загрузки DLL: не удалось найти указанную процедуру.

Во время обработки вышеуказанного исключения произошло другое исключение:

Отслеживание (последний вызов последний):
Файл " ", строка 1, в
Файл "D: \ Python3.6 \ libsite-packages \ numpy__init __. Py", строка 142, в

из . импортировать add_newdocs
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ add_newdocs.py", строка 13, в

из numpy.lib import add_newdoc
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ lib__init __. Py", строка 8, в

из .type_check import *
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ lib \ type_check.py", строка 11, в

импортировать numpy.core.numeric как _nx
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ core__init __. Py", строка 26, в

поднять ImportError (msg)
ImportError:
Не удалось импортировать модуль расширения multiarray numpy. Наиболее
вероятно, вы пытаетесь импортировать неудавшуюся сборку numpy.
Если вы работаете с репозиторием git numpy, попробуйте git clean -xdf (удаляет все
файлы, не находящиеся под контролем версий). В противном случае переустановите numpy.

Исходная ошибка была: Ошибка загрузки DLL: указанная процедура не может быть
найденный.

Все 39 Комментарий

Нет, другие пакеты не должны влиять на это. Я полагаю, вы проверили, нет ли ничего странного в ваших PATH или PYTHONPATH ? И когда вы говорите «удалили их», вы зашли в свой site-packages и сделали (эквивалент Windows) rm -rf numpy ? Возможно, это @cgohlke .

Я сделал pip install numpy . После этого ничего в пакетах сайтов с "numpy" в названии нет. Я задавался вопросом, возможно, это произошло потому, что я ранее использовал сборки @cgohlke , но удаление, похоже, произошло чисто.

Нет ничего очевидного, что я вижу на PATH а у меня нет PYTHONPATH .

Еще немного поиграв с ctypes определенно что-то не так с multiarray :

Покопавшись с помощью dependency walker, похоже, что некоторые файлы могут не загружаться (например, API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL ).

Поиск в сети показывает, что они относятся только к библиотекам Windows 8. Я предполагаю, что они были связаны случайно, и numpy не отменяет поддержку Windows 7?

В качестве краткосрочного исправления я вернулся к numpy 1.12.1

Я только что проверил у коллеги. У него 32-битная сборка, и она вроде работает нормально. Так что это может быть что-то особенное для 64-битного двоичного файла.

Вероятно, это проблема Python 29943 . Расширения, созданные с помощью Python 3.6.1, не будут работать с 3.6.0.

Однако эта ошибка должна влиять только на пакеты, которые ссылаются на PySlices_GetIndicesEx , и ее можно диагностировать, проверив, ссылается ли полученный двоичный файл на PySlice_AdjustIndices . Я думал, что на numpy это не повлияло.

Я только что протестировал на своем домашнем ПК с Python 3.6.1, и numpy 1.13 там отлично работает. Однако мой домашний компьютер также работает под управлением Windows 10 и имеет много других отличий, так что это не идеальный тест. Завтра я обновлю свой рабочий компьютер до 3.6.1 и протестирую там.

@ matthew-brett Я скоро сделаю 1.13.1. Собираетесь ли вы вносить какие-либо изменения в сборку?

@charris - Думаю, нам стоит развить 3.6.0. Я не думаю, что есть какой-либо способ сделать это с Appveyor и стандартными Pythons, поэтому нам нужно будет использовать Conda.

На этот раз я экспериментировал с созданием openblas, но это может занять некоторое время, скажем, неделю?

Может ли кто-нибудь подтвердить, содержат ли плохие колёсные диски Windows ссылку на символ PySlice_AdjustIndices ? Если они это сделают, то проблема не ограничивается Windows, поэтому нам нужно следить за этим, но, по крайней мере, это известно и будет исправлено в версии 3.6.2, которая скоро выйдет. Если нет, то происходит что-то еще, возможно, ранее неизвестная ошибка в 3.6.1 abi, о ​​которой мы должны срочно сообщить в апстриме.

Может ли кто-нибудь подтвердить, содержат ли плохие колёсные диски Windows ссылку на символ PySlice_AdjustIndices ?

Да, multiarray.cp36-win_amd64.pyd ссылается на PySlice_AdjustIndices и PySlice_Unpack .

Windows 10, Python 3.6, установленный с помощью pip, и когда я его импортирую, он выдает мне эту ошибку.

``
C: \ Users \ Kevin> питон
Python 3.6.0 (v3.6.0: 41df79263a11, 23 декабря 2016 г., 07:18:10) [MSC v.1900 32 бит
(Intel)] на win32
Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия».

import numpy
Отслеживание (последний вызов последний):
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ core__init __. Py", строка 16, в

из . import multiarray
ImportError: Ошибка загрузки DLL: не удалось найти указанную процедуру.

Во время обработки вышеуказанного исключения произошло другое исключение:

Отслеживание (последний вызов последний):
Файл " ", строка 1, в
Файл "D: \ Python3.6 \ libsite-packages \ numpy__init __. Py", строка 142, в

из . импортировать add_newdocs
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ add_newdocs.py", строка 13, в

из numpy.lib import add_newdoc
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ lib__init __. Py", строка 8, в

из .type_check import *
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ lib \ type_check.py", строка 11, в

импортировать numpy.core.numeric как _nx
Файл "D: \ Python3.6 \ libsite-packages \ numpy \ core__init __. Py", строка 26, в

поднять ImportError (msg)
ImportError:
Не удалось импортировать модуль расширения multiarray numpy. Наиболее
вероятно, вы пытаетесь импортировать неудавшуюся сборку numpy.
Если вы работаете с репозиторием git numpy, попробуйте git clean -xdf (удаляет все
файлы, не находящиеся под контролем версий). В противном случае переустановите numpy.

Исходная ошибка была: Ошибка загрузки DLL: указанная процедура не может быть
найденный.

@njsmith Python 3.6.2 должен выйти в эту пятницу. Устраняет ли это проблему и все ли идет по графику?

РЕДАКТИРОВАТЬ: если мы сделаем сборку с Python 3.6.0 или 3.6.2, будут ли колеса работать с 3.6.1?

Похоже, мы увернулись от этой пули с 1.12.1, но буквально за пару дней .

Да, сборка с использованием 3.6.0 или 3.6.2 должна быть безопасной в том смысле, что полученные двоичные файлы будут работать во всех системах 3.6.x.

Просто работаю над компиляцией mingw OpenBLAS с @carlkl . Некоторый прогресс, но не могу обещать, что его сделаем в ближайшие несколько дней. Используете препроцессор сейчас?

@ matthew-brett Если 3.6.2 выйдет в пятницу и вскоре после этого появится в Appveyor, я бы сразу пошел по этому пути. Из любопытства, что сейчас использует numpy on window?

Сейчас мы используем ATLAS, но производительность очень плохая. Было бы хорошо иметь возможность использовать OpenBLAS для повышения производительности и согласованности со сборками Linux.

Я не уверен, сколько времени займет Appveyor перед обновлением Python 3.6 до 3.6.2.

Та же проблема, numpy v1.13.1 и python 3.6.1 работали пару месяцев, теперь он просто не работает. Это было основано на установке conda с использованием навигатора Windows Anaconda. В мае и июне 2017 года весь код работает нормально, затем в июле с обновлением и python 3.6.2 «import numpy» больше не работает.

Некоторое дальнейшее исследование (только на основе numpy и python 3.6.2 приводит к
C: \ Anaconda3 \ envs \ tensorflow-cpu \ Libsite-packages \ numpy \ coremultiarray.cp36-win_amd64.pyd
(скомпилированная DLL Python) от 07.07.2017, которая загружает
C: \ Windows \ System32 \ mkl_intel_thread.dll (v2009)
C: \ Windows \ System32 \ mkl_core.dll (v2009)
C: \ Windows \ System32 \ libiomp5md.dll (v2009)

теперь проблема в том, что есть несколько версий для каждой из DLL (ад DLL)
все разные даты, версии, размеры файлов. Обычно Anaconda Navigator, Spyder или python, установленные в разных средах, не загружают правильные версии DLL.

mkl_intel_thread.dll
C: \ Anaconda3 \ Library \ bin \ mkl_intel_thread.dll (октябрь 2016 г.)
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ mkl_intel_thread.dll (апрель 2017 г.)
C: \ Windows \ System32 \ mkl_intel_thread.dll (v2009)

mkl_core.dll
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ mkl_core.dll (апрель 2017 г.)
C: \ Anaconda3 \ Library \ bin \ mkl_core.dll (октябрь 2016 г.)
C: \ Windows \ System32 \ mkl_core.dll (v2009)

libiomp5md.dll
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ libiomp5md.dll
C: \ Anaconda3 \ Library \ bin \ libiomp5md.dll
C: \ Anaconda3 \ envs \ tensorflow-cpu \ Library \ bin \ libiomp5md.dll
C: \ Program Files (x86) \ Common Files \ Intel \ Shared Libraries \ redist \ ia32 \ compiler \ libiomp5md.dll
C: \ Program Files (x86) \ Common Files \ Intel \ Shared Libraries \ redist \ intel64 \ compiler \ libiomp5md.dll
C: \ Windows \ System32 \ libiomp5md.dll

у каждого из них разные версии, размеры файлов и версии. В основном загруженные библиотеки относятся к
до очень старых версий с 2009 по 2017 год. Это проблема с numpy при загрузке старых версий из папки C: \ Windows \ System32 \.

@tobigithub : если у вас возникли проблемы с загрузкой библиотек MKL, вам следует

Другое решение - найти и удалить программное обеспечение, которое копировало старые библиотеки DLL MKL в папки системы Windows. Вам следует также подумать об удалении распространяемых файлов MKL.

Похожие проблемы с numpy и DLL:
https://www.google.com/search?q=numpy+ "Ошибка при импорте + модуля + multiarray + numpy + extension +." & oq = numpy + "Ошибка при импорте + модуля + multiarray + numpy + extension +".

@tobigithub : Мне жаль, что у вас проблемы, но опять же, если проблема вызвана взаимодействием numpy и MKL, то проект numpy ничего не может с этим поделать; мы предоставляем исходный код, который каждый может использовать для создания numpy, связанного с любой библиотекой линейной алгебры, которая им нравится, и мы предоставляем двоичные файлы, связанные с openblas, но мы сами не связываем numpy с MKL и не имеем никакого контроля над тем, как разработчики conda устанавливают это .

Если ваш драйвер RAID или USB или что-то еще сломано таким образом, что нарушает работу другого программного обеспечения в вашей системе, тогда, я думаю, вам следует сообщить об ошибке с ними? Я сочувствую вашему разочарованию, но мы буквально ничего не можем сделать здесь, чтобы помочь вам, кроме как внести предложения по выявлению программного обеспечения, которое действительно является виноватым. Это не глупо.

@njsmith
спасибо, я только что подтвердил использование виртуальной машины в чистой системе Windows 10, которая никогда не видела DLL Intel MKL, numpy или conda, все в порядке, и numpy работает. Я просто озадачен, как numpy вдруг перестали работать, могли быть третьи стороны. Вероятно, нужно еще немного покопаться, давайте посмотрим, что мы можем узнать, чтобы решить любую проблему с зависимостями.

. хорошо, вот решение

Решение действительно связано с некоторыми проблемами зависимости DLL под WIN с библиотеками Intel MKL.
ошибка импорта numpy была под python 3.6.2 и numpy 1.13.1:

"import numpy"
numpy \ core_init_.py ", строка 16, в
из . import multiarray
ImportError: Ошибка загрузки DLL: не удалось найти указанную процедуру.

Быстрое и грязное решение - скопировать все библиотеки Intel mkl * .dll из подпапки определенных сред (env) (видно на stackoverflow )

<\ Library \ bin> в
<\ Libsite-пакеты \ numpy \ core>

теперь numpy можно импортировать и работает нормально.

Это проблема numpy / conda / python под окнами. Оба примера выполняются одновременно с использованием одной и той же версии Anaconda Navigator (conda). Установка разных версий Python и последующее тестирование всех различных зависимостей и номеров версий могут помочь найти проблему. После этого изменения кода должны быть исследованы.

За работой
Python 3.5.3 и numpy 1.10.1 и mkl 2017.0.3

Сломанный
Python 3.5.3 и numpy 1.13.1 и mkl 2017.0.3

@tobigithub : это не то место, чтобы обсуждать это, как уже
объяснял вам несколько раз. Если у вас проблемы с анакондой, вы
необходимо сообщить о них в континуум / анаконду.

Читайте также: