Ошибка при загрузке DLL при импорте cv2

Я установил opencv на свою машину Windows с помощью python 3.6 без каких-либо проблем, используя:

pip install opencv-python

но когда я пытаюсь импортировать cv2, я получаю следующую ошибку:

ImportError: DLL load failed: The specified module could not be found.

Я видел этот пост

Он говорит, что cv2 не работает с python 3 Мне было интересно, исправлено ли это или есть ли способ вокруг него

Ответ 1

Вы можете загрузить последнюю версию OpenCV 3.2.0 для Python 3.6 на 32-разрядной или 64-разрядной машине Windows, поиск файлов начинается с opencv_python‑3.2.0‑cp36‑cp36m с этого неофициального сайта. Затем введите ниже команду, чтобы установить его:

  • pip install opencv_python‑3.2.0‑cp36‑cp36m‑win32.whl (32-разрядная версия)
  • pip install opencv_python‑3.2.0‑cp36‑cp36m‑win_amd64.whl (64-разрядная версия)

Я думаю, что это будет проще.

Обновление на 2017-09-15:

Файлы колеса OpenCV 3.3.0 теперь доступны на неофициальном сайте и заменены OpenCV 3.2.0.

Обновление на 2018-02-15:

Файлы колеса OpenCV 3.4.0 теперь доступны на неофициальном сайте и заменены OpenCV 3.3.0.

Обновление на 2018-06-19:

Файлы колеса OpenCV 3.4.1 теперь доступны на неофициальном сайте с поддержкой CPython 3.5/3.6/3.7 и заменены OpenCV 3.4.0.

Обновление на 2018-10-03:

Файлы колеса OpenCV 3.4.3 теперь доступны на неофициальном сайте с поддержкой CPython 3.5/3.6/3.7 и заменены OpenCV 3.4.1.

Обновление на 2019-01-30:

Файлы колеса OpenCV 4.0.1 теперь доступны на неофициальном сайте с поддержкой CPython 3.5/3.6/3.7.

Обновление на 2019-06-10:

Файлы колес OpenCV 3.4.6 и OpenCV 4.1.0 теперь доступны на неофициальном сайте с поддержкой CPython 3.5/3.6/3.7.

Ответ 2

Я занял много времени, чтобы решить эту ошибку! Команда запуска

pip install opencv-contrib-python

Ответ 3

Если вы используете Anaconda с python 3.5, это проблема в выпуске Anaconda. (См. Этот вопрос)

Вы можете решить эту проблему, скопировав файл python3.dll в папку Anaconda3 (где находится python.exe)

Как получить "python3.dll"

  • В cmd введите python --version чтобы узнать, является ли ваша установка 64-битной или 32-битной
  • скачать Python 3.x встраиваемый ZIP файл здесь
  • Извлеките zip файл и скопируйте файл python3.dll в папку Anaconda3

Но если вы сможете перейти на Anaconda с python 3.6 вы не столкнетесь с этой проблемой. Если это возможно для вас, то это рекомендуемый способ..

Ответ 4

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

  • Принятый ответ by @thewaywewere больше не применим. Я думаю, что это было применимо, когда модуль opencv-python все еще не был доступен.

  • Это действительно ошибка в Anaconda 4.2, потому что они забыли отправить python3.dll. Они исправили это в следующих выпусках, но, к сожалению, 4.2 является последней версией с Python 3.5 по умолчанию. Если вы застряли с Python 3.5 (например, VS2015 знает только версии до 3.5), вы должны вручную загрузить python3.dll, как описано в ответе @Ramesh-X.

  • Если вы можете перейти к Python 3.6 (который в настоящее время затруднен, если вы используете OpenCV и VS2015), то просто установите последнюю версию Anaconda, и вам не придется иметь дело с любым из них.

Ответ 5

Недавно я столкнулся с подобной проблемой в Azure Windows Server 2012 r2. Перепробовал все варианты с и без Анаконды, но ни один из них не помог. После многих выводов я обнаружил, что отсутствует mfplat.dll, что связано с Windows Media Service.

Следовательно вы должны вручную установить функции, чтобы вы могли получить DLL, связанные с оконной медиа-службы.

1. Включите или выключите функции Windows

2. Пропустите экран ролей и перейдите непосредственно к экрану функций.

3.Выберите "Desktop Experience" в разделе "Пользовательские интерфейсы и инфраструктура".

После этого будут доступны все необходимые dll медиа-сервисов для opencv.

Поэтому, если вы планируете запускать свой код в облаке (Windows Server), пожалуйста, не забудьте выбрать функцию Desktop Experience.

Ответ 6

Есть много вопросов по этому поводу и много предложений. Никто из них не помог мне в недавних Opencv 3.4.16 и Python 3.6/3.7. Наконец я переключился на Pyhon 2.7.15 и установил opencv 3.1.0. DLL-проблема была решена.

Когда я смотрю в cv2.pyd с помощью обходчика зависимостей, у 3.1 нет зависимости ни от одного отсутствующего dll. Opencv 3.4 имеет эту отсутствующую зависимость от этой DLL:

API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL

может быть в этом проблема.

PS: у меня Win7 профессиональный 64Bit, 32Bit Python 2.7.15

Ответ 7

Я столкнулся с этой проблемой в Windows 10 (N) с новой установкой Anaconda, основанной на Python 3.7 (OpenCV версия 4.0). Ни один из приведенных выше советов не помог (например, установка OpenCV с неофициального сайта или установка VC Redistributable).

Я проверил зависимости DLL от ...\AppData\Local\conda\conda\envs\foo\Lib\site-packages\cv2\cv2.cp37-win_amd64.pyd используя dumpbin.exe соответствии с этой проблемой github. Я заметил библиотеку MF.dll, которая, как я выяснил, принадлежит Windows Media Foundation.

Поэтому я установил Media Feature Pack для N версий Windows 10 и вуаля, проблема была решена!

Ответ 8

У меня была такая же проблема при установке opencv 2.4.13 на Anaconda3 (Python 3.6)... Мне удалось исправить эту проблему, обратившись к Anaconda2 (Python 2.7)

Ответ 9

это происходит потому, что компилятор или интерпретатор находят более одного пакета файла, удаляют все номера того же пакета, что у вас есть, а затем оставляют только один, а затем пытаются установить. Это служит

Ответ 10

Проблема связана с отсутствующим файлом python3.dll в Anaconda3.

Чтобы решить эту проблему, вы должны просто скопировать python3.dll в C:\Program Files\Anaconda3 (или там, где установлена Anaconda3).

Вы можете получить python3.dll, загрузив двоичные файлы, представленные в нижней части страницы выпуска Python, и извлекая python3.dll из ZIP файла.

Ответ 11

У меня была та же проблема с python 3.6 (Anaconda3) и OpenCV 3.4.1 для работы spyder. Даже после копирования cv2.pyd в Anaconda3 Users/home/Anaconda3/Lib/site-packages, это не сработало.

Но нашел решение

Позже я установил OpenCV и Dlib на Anaconda и скопировал сгенерированные cv2.cp36-win_amd64.pyd и dlib.cp36-win_amd64.pyd в Anaconda3 Users/home/Anaconda3/Lib/site-packages. Их можно скопировать из папки среды C:\Users\home\Anaconda3\envs\opencv\Lib\site-packages.

Наконец Spyder начал работать

Ответ 12

У меня та же проблема. когда я устанавливаю WinPython-программирование и запускаю opencv после копирования файла cv2.pyd из каталога opencv, он будет выглядеть следующим образом: C:\Users.....\Downloads\opencv\build\python\2.7\x64, x64 или x86 зависит от ваших 32- или 64-разрядных устройств. и вставляем в C:\Users.....\Downloads\WinPython-64bit-3.5.4.1Qt5\python-3.5.4.amd64\Lib\site-packages, я предпочитаю предыдущий python 3.5, чем 3.6. Потому что, когда я "импортировал cv2" установлен (python 3.6), он показывает прямо: "ImportError: ошибка загрузки DLL: указанный модуль не найден" Затем я устанавливаю python 3.5 и открываю командную строку WinPyhton и нажимаю "pip install opencv-python".

Командная строка автоматически загружает opencv, она показывает процесс, подобный этому: "Успешно установлен opencv-python-3.3.0.10"

Наконец, я пытаюсь запустить open cv по типу "import cv2", он работает Я пытаюсь ввести "cv2. версия" и показывает: "3.3.0"

Ответ 13

Под Winpython: Winpython-64bit-.../python_.../DLLs файл cv2.pyd должен быть переименован в _cv2.pyd

Ответ 14

(базовый) C:\WINDOWS\system32> conda install C:\Users\Todd\Downloads\opencv3-3.1.0-py35_0.tar.bz2

Я запустил эту команду из терминала anaconda после того, как скачал версию с https://anaconda.org/menpo/opencv3/files

Это единственный способ заставить работать cv2, и я пробовал все в течение двух дней.

Ответ 15

Если это помогает кому-то, на официальном образе докера Windows Python 3.6, заставить эту вещь работать, я должен был скопировать со своего рабочего стола следующие библиотеки:

C:\WINDOWS\system32

aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dmenterprisediagnostics.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mf.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msacm32.drv
msvfw32.dll
ngcrecovery.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
WpAXHolder.dll
wuceffects.dll

C:\Windows\SysWOW64

aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msvfw32.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
wuceffects.dll'

Ответ 16

Пожалуйста, помните, если вы хотите установить пакет/библиотеки Python для Windows,

Вы всегда должны рассматривать Python как неофициальные двоичные файлы

Шаг 1:

Найдите свой пакет, загрузите зависимую версию 2.7 или 3.6, которую вы можете найти в разделе Downloads/your_package_version.whl, которая называется python wheel

Шаг 2:

Теперь установите с помощью pip,

pip install ~/Downloads/your_packae_ver.whl

это установит без любой ошибки.

Ответ 17

У меня была та же проблема, и я потратил 3 полных дня на борьбу с ней. Я попробовал все, что предлагалось: обновить pip, обновить Visual C++, обновить Anaconda, вручную загрузить файлы и практически все решения, которые я мог найти в Интернете. Вот что наконец сработало, может быть, это поможет кому-то еще:

1- Я отказался от загрузок на основе Python 3 и Anaconda, так как заметил, что у них было несколько проблем, и вместо этого загрузил биты Python 2.7.16 6 4-.

2- Переместился туда, где находился Pip на моем диске (для меня путь C:\Python27\Scripts), выделив путь, выбрав его, и набрав "cmd", затем введите, чтобы на этом пути открылась командная строка (я заметил пропуск этого обычно приводит к паре ошибок)

3- Обновлен Pip с использованием python -m pip install --upgrade pip на CMD (опять же, пропустив это и не обновив, не пропустил эту процедуру)

4- Загрузил соответствующий файл Wheel с https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv (после нескольких попыток тот, который работал для меня, был opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl) Я скопировал и вставил его в ту же папку, в которой находился Пип (C:\Python27\Scripts для меня), а затем установил его через CMD, используя: pip install opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl. Всегда через CMD открывается по этому пути, как показано в шаге 2

5- После шага 4, когда я импортировал OpenCV с помощью import cv2 меня больше не было ошибки DLL, но была ошибка, связанная с numpy (поскольку я только что установил эту версию Python, и поэтому Numpy еще не был установлен). Я установил numpy, набрав pip install numpy и вуаля! Проблема была решена, и OpenCV импортирован правильно.

Надеюсь, это кому-нибудь поможет.

Ответ 18

Честно говоря, здесь очень много умных и сложных ответов. Мой тупой и простой. Я удалил свою среду conda, переустановил ее с нуля, стараясь сначала установить opencv. Это исправило мои проблемы. Среды должны быть временными и прозрачными, поэтому не слишком привязывайтесь.

Поэтому, если моя среда называлась fubar, сначала убедитесь, что все экземпляры деактивированы (включая все IDE, которые ее используют). Затем удалите его:

conda remove --name fubar --all

Теперь я просто воссоздаю свою среду и сначала добавляю opencv:

conda create --name fubar
conda activate fubar
conda install opencv

А потом иди оттуда. Я всегда (всегда) устанавливаю Spyder последним, так как это приводит к ошибкам, когда я этого не делаю.

Ответ 19

В моем случае мне пришлось установить более старую версию openCV (windows 10, Python 3.6.8)

pip install opencv-python==3.3.0.9

Ответ 20

Установите Python, используя:

  • pip install opencv-python (потребуется последняя версия)

Убедитесь, что opencv-python установлен в путь (\ Python\Python36\Lib\site-packages), там вы найдете папку cv2.

Чтобы проверить версию cv2: импортируйте cv2 print (cv2.__ version__)