"Ошибка загрузки 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, связанные с оконной медиа-службы.
- Включить или отключить функции Windows
- Пропустить экран ролей и сразу перейти к экрану функций
- Выберите "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