«Ошибка загрузки DLL» при импорте cv2 (opencv) - PullRequest
0 голосов
/ 16 сентября 2018

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

в [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

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

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

ДЕНЬ 4,5
Мой следующий шаг, попытка скомпилировать OpenCV на моей машине, установить Visual Studio 2012 + cmake и основываться на document версии 2 с компиляцией, 64x и 32, компиляция сама по себе имеет много проблем (например, отсутствует некоторая библиотека lib из c lang и мне нужно установить 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 уже установлен. ' в этой бесплатной учетной записи, вы не можете открыть с urllib, и больше ограничений ... так что я хочу попробовать установить Ubuntu в VMware самостоятельно ... Я читаю здесь результаты после работы. Невозможно с той же самой целью В.Б. (визуальный блок)

Ответы [ 9 ]

0 голосов
/ 23 января 2019

Это может произойти, если вы используете дистрибутив 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 media Плагин не найден, это проблема.

0 голосов
/ 12 апреля 2019

это хорошо сработало для меня. * Ответ: Нужно поместить файл 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 to _cv2.pyd

0 голосов
/ 23 ноября 2018

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

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

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

Выполненные шаги:

step1 : я установил opencv 3.4.4 из здесь , затем извлекил на диск C (вы можете делать, где хотите)

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

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

step4 : откройте свойство системы-> Дополнительно-> Переменные окружения, теперь отредактируйте путь и добавьте C: \ opencv \ build \ x64 \ vc14 \ bin (в моем случае это место, где хранится OPENCV_WORLD344.DLL) и после этого импортируйте cv2 в python.

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

0 голосов
/ 08 января 2019

После 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.

Надеюсь, это решение подойдет вам.

0 голосов
/ 05 ноября 2018

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

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

  1. Включение или выключение функций Windows
  2. Пропуск экрана ролей и прямой переход к экрану функций
  3. Выберите «Интерфейс рабочего стола» в разделе «Пользовательские интерфейсы и инфраструктура»

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

0 голосов
/ 25 октября 2018

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

conda install -c anaconda py-OpenCV
0 голосов
/ 22 сентября 2018

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

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

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

Итак, если у вас Python 3.6 (64-битная версия) и вы хотите установить OpenCV 3.4.3, скачайте файл wheel: opencv_python‑3.4.3‑cp36‑cp36m‑win_amd64.whl

0 голосов
/ 16 сентября 2018

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

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

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

...