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

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

в [Windows Server 2012 R2 x64, Python 3,7 64x]

pip install opencv-contrib-python

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

import cv2

покажи мне эту ошибку:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import cv2
  File "C:\Program Files\Python37\lib\site-packages\cv2\__init__.py", line 3, in
 <module>
    from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.

и я вижу другую тему об этой ошибке, но ее решение не работает для меня:
- Ошибка загрузки DLL при импорте cv2
- Не удалось импортировать cv2 в Python: сбой загрузки DLL
- и много страниц в здесь

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

что я пытаюсь до сих пор:
- изменить версию Python: 3.5, 3.7, 2.7 в 86x и 64x (удалить полную последнюю версию и удалить все оставшиеся файлы в программных файлах... затем установить новую)
- попробуйте другие пакеты, такие как: opencv-python, opencv-contrib, попробуйте установить конкретные версии с .whl (в какой-то теме я читал об этом, поэтому установите numpy-1.14.5 + mkl-cp37-cp37m-win_amd64.whl и opencv_python-3.4.3 + contrib-cp37-cp37m-win_amd64.whl, но ничего не изменилось)
- импортировать numpy перед cv2 для каждого теста
- установлено распространяемое обновление Microsoft Visual C++ 2015 3, 2008, 2010, 2017 для 64x

Помогите мне, пожалуйста.  

UPDATE
СЛЕДУЮЩИЙ 2 ДЕНЬ
Япытаюсь справиться с отсутствующей базой dll, используя обходчик зависимостей, который упоминается в приведенном ниже сообщении, загружаю все dll и помещаю их в систему 32, это хорошая подсказка, но не решает проблему.

ДЕНЬ 4,5
Мой следующий шаг, попытка скомпилировать OpenCV на моей машине, установить Visual Studio 2012 + cmake и основываться на документе версии 2 скомпилировать, 64x и 32, компиляция сама по себе имеет много проблем (например, отсутствует какая-то библиотека из языка программирования). и мне нужно установить Visual C++ Redistributable для Visual Studio 2012...), и я разрешаю все из них, затем у меня есть 2 успешных скомпилированных версии, но обе имеют ту же проблему с отсутствующим dll, процесс компиляции очень медленный и дай 2 дня от меня. так что, если провал на этой миссии:/Я ищу новый путь...

ДЕНЬ 6
Мой следующий шаг - попытаться запустить OpenCV на моей машине с помощью Docker (я пытаюсь, но окна Docker просто устанавливаются на Windows 10 и Windows Server 2016), поэтому я ищу альтернативу. Я нашел Vagrant, который работает как докер, но с VM (визуальный блок) сегодня я трачу время на эти статьи, это удивительно, концепция docker и vagrant настолько привлекательна, и я играю с этим вот так, у меня новая головоломка :) первая ошибка отображается на... и неограниченные ошибки продолжаются:/

День 7
Тесты Vagrant тоже не прошли, потому что мой windows server 2012 - это vb-машина (визуальный сервер), и запустить визуальный блок в другом визуальном блоке невозможно! поэтому мне нужны новые подсказки :(

День 8-9
попробуйте установить vagrant с VMware, я загружаю VMware, к сожалению, этот плагин не является бесплатным (79 $), поэтому я пытаюсь работать с pythonanywhere.com, который "дает вам доступ к машинам с уже установленной полной средой Python. ' в этом бесплатном аккаунте вы не можете открыть openurl с помощью urllib, и больше ограничений... так что я хочу попробовать установить Ubuntu в VMware самостоятельно... Я читаю здесь результаты после работы. Невозможно по той же причине В.Б. (визуальный блок)

Ответы

Ответ 1

Это может произойти, если вы используете дистрибутив Windows 10 N, дистрибутив N не поставляется с установленным пакетом компонентов Windows Media, который требуется после OpenCV версии 3.4 и более поздних.

Предпочтительным решением является установка пакета компонентов по адресу: https://www.microsoft.com/en-us/software-download/mediafeaturepack.

Будьте осторожны, чтобы выбрать версию, которая работает с вашей текущей версией Windows.

Если это не вариант, вернитесь к более ранней версии OpenCV, в которой нет зависимостей dll, вы можете сделать это: pip install opencv-python=3.3.0.9

Поскольку Windows развернута в версии N, эта проблема встречалась во многих местах и имеет множество последствий для среды Windows. Самый быстрый способ определить, есть ли у вас эта проблема, - это открыть youtube в браузере Edge, если в нем говорится, что HTML5-плагин не найден, это проблема.

Ответ 2

У меня была такая же ошибка (хотя я сам скомпилировал OpenCV), в моем случае не было некоторых зависимостей DLL. Вы можете проверить это с помощью программы Dependency Walker.

Загрузите Dependency Walker и запустите его, и откройте файл cv2.pyd с Dependency Walker, он должен быть в C:\Program Files\Python37\lib\site-packages\cv2\ если пакет pip установлен правильно.

Затем эта программа сканирует зависимости (это может занять несколько минут), а затем отображает отсутствующие DLL файлы красным цветом.

Ответ 3

Python 3.7 может не поддерживать некоторые модули.

  • Попробуйте установить python 3.6.4
  • Используя командную строку "pip install opencv" или "pip install opencv-python",
  • Импорт cv2

Ответ 4

У меня была похожая проблема, за исключением того, что я использую Anaconda3, и этот код здесь решил ее:

conda install -c anaconda py-OpenCV

Ответ 5

Можете ли вы попробовать удалить opencv и установить его, используя файл колеса? Вот веб-сайт, на котором есть много версий OpenCV, скомпилированных для Windows, поиск нужного вам и просто установка его с помощью команды pip.

Поэтому, если у вас есть Python 3.6 (64 бит) и вы хотите установить OpenCV 3.4.3, загрузите файл с колесом: opencv_python‑3.4.3‑cp36‑cp36m‑win_amd64.whl

Ответ 6

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

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

  1. Включить или отключить функции Windows
  2. Пропустить экран ролей и сразу перейти к экрану функций
  3. Выберите "Desktop Experience" в разделе "Пользовательские интерфейсы и инфраструктура".

После этого будут доступны все необходимые DLL файлы opencv.

Ответ 7

После 15 дней мозгового штурма это решение сработало для меня. И я уверен, что это будет работать и для вас. Я установил анаконду, чтобы использовать OpenCV 3.1.0. Я выполнил следующие шаги:

1) Я установил 64-битный установщик anaconda-5.3 (614,3 МБ), который использует Python 3.7. Вы можете скачать анаконду по ссылке: https://www.anaconda.com/download/#windows

2) После установки anaconda откройте приглашение anaconda, набрав "anaconda prompt" на кнопке запуска Windows. Открыть с помощью "Запуск от имени администратора".

3) Вам необходимо создать новую среду для установки и использовать модуль OpenCV. Запишите следующие команды для создания и активации новой среды:
>conda create --name myNewEnv python=3.5.0
>activate myNewEnv
"myNewEnv" - это название новой среды.

4) Теперь вам нужно установить предварительную версию для OpenCV, которая является пустой, а затем установить opencv3. Запустите интернет перед выполнением следующих команд:
>conda install numpy
>conda install anaconda-client
>conda install --channel https://conda.anaconda.org/menpo opencv3

5) OpenCV3 был установлен. Теперь проверьте установку, выполнив следующие команды:
(myNewEnv) C:\Users\Nilesh> python
>>>import cv2
>>>cv2.__version__

Следуйте приведенным ниже инструкциям, если вы хотите запустить OpenCV3 второй раз:

1) Откройте "командную строку anaconda" из меню "Пуск" с правами "Запуск от имени администратора"
2) Введите команду> активировать ваше_новое_среда_имя
3) Предположим, что вы хотите запустить файл, расположенный на рабочем столе, для этого напишите следующую команду:
> cd C:\Users\Nilesh\Desktop
4) Теперь ваш рабочий каталог - Desktop.
5) Введите следующую команду для запуска любого кода (например, test.py).
> python test.py
Примечание. Здесь python означает версию-3.

Я надеюсь, что это решение будет работать для вас.

Ответ 8

Я страдал от той же самой проблемы: "Ошибка загрузки DLL" после прочтения множества ответов и статей, я получил решение.

Я не знаю, работает ли это для вас или нет, но попробуйте.

инструменты и версии, которые я использовал: анаконда - 5.3.1, питон - 3.7, победа 10 (64 бита)

Шаги, которые я выполнил:

Шаг 1: я установил OpenCV 3.4.4 отсюда, а затем распаковать на диск C (вы можете сделать, где вы хотите)

шаг 2: скопируйте файл cv2.pyd из [C:\opencv\build\python\cv2\python-3.7] здесь в [C:\Users\"имя пользователя"\Anaconda3\Lib\site-packages] здесь.

шаг 3: запустить средство обхода зависимостей, чтобы определить, какие файлы DLL отсутствуют, после запуска средства обхода зависимостей в моем случае было показано, что два файла DLL не загружаются, это (1) OPENCV_WORLD344.DLL и (2) IESHIMS.DLL. я не знаю о вашей ситуации, но вы можете this-> найти имя файла, используя средство обхода зависимостей, затем найти их путь и выполнить шаг 4.

шаг 4: откройте System property-> Advanced-> переменные окружения, теперь отредактируйте путь и добавьте C:\opencv\build\x64\vc14\bin (в моем случае это место, где хранится OPENCV_WORLD344.DLL) и после этого Импортируйте CV2 в Python.

Если мой ответ не работает, добавьте комментарий.

Ответ 9

это хорошо сработало для меня. * Ответ: Нужно поместить файл cv2.pyd в вашу виртуальную среду. нужно поставить под две папки envs,

  • сначала находится в папке DLLS и Второй находится в Lib/site-packages

Чтобы скачать cv2.pyd>, скачайте по этой ссылке https://sourceforge.net/projects/opencvlibrary/, а затем распакуйте файл загрузки

.Вы получите папку opencv, после этого зайдите в папку opencv, например, Downloads\opencv\build\python\2.7, и перейдите на одну более глубокую папку в зависимости от версии вашего 32- или 64-го окна.

Скопируйте cv2.pyd Важно **** После копирования файла cv2.pyd в ваши envs, вам нужно переименовать cv2.pyd в _cv2.pyd