Ошибка загрузки DLL при импорте cv2
Я установил opencv на моей машине с Windows, используя Python 3.6 без проблем, используя:
pip install opencv-python
но когда я пытаюсь импортировать cv2, я получаю следующую ошибку
ImportError: DLL load failed: The specified module could not be found.
Я видел этот пост
Там написано, что cv2 не работает с питоном 3. Мне было интересно, было ли это исправлено или есть способ обойти это?
28 ответов
Вы можете загрузить последнюю версию 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
,
Я занял много времени, чтобы решить эту ошибку! Команда запуска
pip install opencv-contrib-python
Если вы используете 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
Вы не столкнетесь с этой проблемой. Если это возможно для вас, то это рекомендуемый способ..
Недавно я столкнулся с подобной проблемой в Azure Windows Server 2012 r2. Перепробовал все варианты с и без Анаконды, но ни один из них не помог. После многих выводов я обнаружил, что отсутствует mfplat.dll, что связано с Windows Media Service.
Следовательно вы должны вручную установить функции, чтобы вы могли получить DLL, связанные с оконной медиа-службы.
1. Включите или выключите функции Windows
2. Пропустите экран ролей и перейдите непосредственно к экрану функций.
3.Выберите "Desktop Experience" в разделе "Пользовательские интерфейсы и инфраструктура".
После этого будут доступны все необходимые dll медиа-сервисов для opencv.
Поэтому, если вы планируете запускать свой код в облаке (Windows Server), пожалуйста, не забудьте выбрать функцию Desktop Experience.
Я столкнулся с этой проблемой в 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 и вуаля, проблема была решена!
Потратив слишком много времени на эту проблему и испробовав разные ответы, вот что нашел:
Принятый ответ @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, и вам не придется иметь дело ни с одним из них.
Есть много вопросов по этому поводу и много предложений. Никто из них не помог мне в недавних 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
В моем случае в крупном обновлении Windows 10 были удалены некоторые пакеты Windows, поэтому другие методы (переустановка opencv и т. Д.) Не помогли. Чтобы исправить это, установите:
а) Распространяемый компонент Microsoft Visual C++ для Visual Studio 2015, 2017 и 2019
б) Media Feature Pack для версий N - необходим, только если у вас Windows 10 N
Оба требуют перезагрузки ПК.
Откровенно говоря, здесь много очень умных и сложных ответов. Моя тупая и простая. Я удалил среду conda, переустановил с нуля, приложив все усилия, чтобы сначала установить opencv. Это устранило мои проблемы. Среда должна быть временной и прозрачной - не привязывайтесь слишком сильно.
Итак, если мое окружение называлось fubar
сначала убедитесь, что все экземпляры деактивированы (включая любые IDE, которые его используют). Затем удалите его:
conda remove --name fubar --all
Теперь я просто воссоздаю свою среду и сначала добавляю opencv:
conda create --name fubar
conda activate fubar
conda install opencv
А потом идти оттуда. Сначала откройте python и убедитесь, чтоimport cv2
работает. Тогда вы должны отправиться в путь. Обратите внимание: я всегда (всегда) устанавливаю Spyder в последнюю очередь, поскольку он имеет тенденцию портить работу, когда я этого не делаю.
Обратите внимание: если это не сработает, у нас были случаи, когда людям приходилось удалять и переустанавливать Anaconda, и тогда все работало. Очевидно, последнее средство.
Это происходит потому, что компилятор или интерпретатор находят более одного пакета файла, удаляют все номера того же пакета, что у вас есть, а затем оставляют только один, а затем пытаются установить. Это служит
В моем случае мне пришлось установить старую версию openCV (windows 10, Python 3.6.8)
pip install opencv-python==3.3.0.9
У меня была та же проблема с 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 начал работать
У меня была та же проблема, кажется, для openCV требуется пакет компонентов Windows Media, который не установлен в Windows 10 N по умолчанию, установите его, используя следующую ссылку:
https://www.microsoft.com/en-us/software-download/mediafeaturepack
Мне удалось заставить его работать, установив python 3.9.12 в новой среде (используя conda), а затем установив opencv в этой среде. Из-за моей версии Python вместо версии 4.60 была установлена версия opencv 4.5.5.
(Я уже обновил VC2015-2022 и добавил python3.dll в PATH; ни один из них не работал.)
Запуск Python 3.8.8 из Windows 10 PowerShell из среды anaconda 4.10.1 Я установил opencv с
conda установить opencv
Я мог без проблем импортировать opencv, когда запускал python из командной строки.
Однако, когда я попытался запустить код изнутри pydev, используя интерпретатор python для конкретной среды anaconda, которую я активировал, pydev не смог найти ту DLL, которую искал, при импорте opencv.
Установка следующей переменной среды решила проблему:
CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
Источник: PyDev / Eclipse не загружает _mklinit при запуске из среды Conda
Что указывает на это описание устранения неполадок для другой проблемы загрузки библиотеки: https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy-mkl-library-load-failed
У меня была такая же проблема при установке opencv 2.4.13 на Anaconda3 (Python 3.6)... Мне удалось исправить эту проблему, вернувшись к Anaconda2 (Python 2.7)
Проблема связана с отсутствием python3.dll
файл в Anaconda3.
Чтобы решить эту проблему, вы должны просто скопировать python3.dll
в C:\Program Files\Anaconda3
(или везде, где установлен Anaconda3).
Вы можете получить python3.dll
загрузив двоичные файлы, представленные в нижней части страницы выпуска Python, и распакуя python3.dll
из ZIP-файла.
Эта ошибка может быть вызвана отсутствием следующей библиотеки DLL
Чтобы установить эту dll:https://www.microsoft.com/en-us/software-download/mediafeaturepack, как уже объяснялось выше
Под Winpython: Winpython-64bit-.../python_.../DLLs
каталог файл cv2.pyd
следует переименовать в _cv2.pyd
В Windows 10 со сценариями Python (3.11.4) на основе виртуальной среды мне удалось установить OpenCV 4.8.1.78 с помощью следующей команды:
pip install opencv-python
Обратите внимание, что почему-то установлена именно эта версия win_amd64. До сих пор это работало хорошо!!
У меня та же проблема. когда я устанавливаю программирование 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. Version" и показывает: '3.3.0'
У меня была та же проблема, и я потратил 3 полных дня на борьбу с ней. Я испробовал все, что предлагалось: обновление pip, обновление Visual C++, обновление Anaconda, загрузка файлов вручную и практически все решения, которые я мог найти в Интернете. Вот что наконец сработало, может быть, это поможет кому-то еще:
1. Я отказался от загрузок на основе Python 3 и Anaconda, поскольку заметил, что у них было несколько проблем, и вместо этого скачал 64-битные версии Python 2.7.16.
2- Перейдя туда, где находился Pip на моем диске (для меня путь C:\Python27\Scripts), выделил путь, выбрав его, и набрал "cmd", затем введите, чтобы на этом пути открылась командная строка (я заметил, что пропуск это обычно вызывает пару ошибок)
3- Обновлен пип с использованием python -m pip install --upgrade pip
на CMD (опять же, пропустив это и не обновив, не пропустил эту процедуру)
4- Скачал соответствующий Wheel
файл из https://www.lfd.uci.edu/~gohlke/pythonlibs/ (после нескольких попыток у меня работал opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl), который я скопировал и вставил он был в той же папке, в которой находился Pip (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 импортирован правильно.
Надеюсь, это кому-нибудь поможет.
Пожалуйста, помните, если вы хотите установить пакет / библиотеки Python для Windows,
вы всегда должны рассматривать Python как неофициальные двоичные файлы
Шаг 1:
Найдите свой пакет, загрузите зависимую версию 2.7 или 3.6, которую вы можете найти в папке Downloads/your_package_version.whl python wheel
Шаг 2:
Теперь установите с помощью pip,
pip install ~/Downloads/your_packae_ver.whl
это установит без любой ошибки.
(базовый) 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, и я пробовал все в течение двух дней.
Если вы используете сервер или среду докера без графического интерфейса (например, Windows Core Server), убедитесь, что вы используете безголовую версию cv2:
pip install opencv-contrib-python-headless
Если это помогает кому-то, на официальном образе докера 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`
Windows 11 Н
Это последнее исправление для тех, кто не использует анаконду.
просто отсутствуют файлы DLL, вот и все
скачать последнюю версию
https://sourceforge.net/projects/opencvlibrary/
Затем, после того, как вы извлечете его, найдите файлы .dll, скопируйте их все и вставьте в C:\Windows\System32 и подтвердите замену.
Вот и все !
Установите Python, используя:
- pip install opencv-python (потребуется последняя версия)
Убедитесь, что opencv-python установлен в путь (\Python\Python36\Lib\site-packages), там вы найдете папку cv2.
Чтобы проверить версию cv2: импортируйте cv2 print(cv2.__version__)