python + opencv «загрузка dll не удалась»

0

Я пытаюсь установить opencv на моем компьютере, как описано в книге: "Packtpub OpenCV Computer Vision с Python Apr 2013"

В нем говорится, что для запуска kinect вам нужно скомпилировать openCV с некоторыми материалами, поэтому я загрузил openCV.exe, который извлекает в папку 3.2gb и выполняет все этапы...

Использовал CMaker, использовал компилятор MinGW и все, что написано в книге

Чем он говорит мне попробовать запустить несколько примеров... но когда я пытаюсь запустить drawing.py, как рекомендовано в книге, и всем остальным, в нем говорится:

python drawing.py


Версия чертежа OpenCV Python

traceback <последний звонок последний>:

Файл "drawing.py", строка 7, в

import cv2.cv as cv

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


Я видел много людей, говорящих, что эта проблема исправлена добавлением пути к бункелю DLL openCV к пути...

как узнать, какое имя dll отсутствует, поэтому я могу найти его имя и найти папку, где она есть?

У меня есть компьютер x64, но книга говорит мне установить все x86, потому что сложнее получить некоторые незначительные ошибки, возможно, несовместимость версий между openCV, компилятором, cmaker и python?

Я попытался добавить много папок в переменную "путь", и это не сработало

сообщите мне, как я узнаю, какие DLL отсутствуют, поэтому я могу найти их на компьютере или каким-то другим способом решить эту проблему, потому что у меня просто нет идей

Теги:
opencv
dll
mingw

4 ответа

0
Лучший ответ

У меня нет достаточно высокой репутации, чтобы добавить комментарий, иначе я бы хотел что-то, что вы можете сделать, это запустить python с помощью опции -v.

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

Это также звучит так, как будто вы неправильно настроили свои пути. Вы посмотрели на ImportError: Ошибка загрузки DLL:% 1 не является допустимым приложением Win32? Если бы DLL ожидалась в определенном месте, но не была загружена или присутствовала, а затем была вызвана через LoadLibrary (без проверки, действительно ли она была загружена), что может вызвать такую ошибку. Вероятно, ошибка исходной DLL, которая не смогла проверить последующую DLL, была загружена, а не просто предполагала, что вызов LoadLibrary преуспел.

В дополнение к опции python -v yourmodule.py вы также можете попробовать запустить strace (если вы используете unix - но это не похоже на то, что вы есть). Раньше я использовал SoftICE для Windows для глубокого углубления. Если вы знаете пакет или DLL, находящуюся в корне проблемы, и имеете доступ к инструменту экспорта dll, вы должны иметь возможность получить список зависимостей, необходимых dll (внешние функции, на которые он опирается). Тогда вам просто нужно знать или находить те функции, от которых они зависят, от других DLL. Прошло некоторое время с тех пор, как я все время делал такие вещи, чтобы найти функции в других DLL, но это то, что полностью выполнимо с точки зрения spelunkers. Но есть, вероятно, более простые способы.

Сначала я начну с подхода python -v.

  • 0
    Python в Windows - это просто боль. Мой совет - использовать Linux.
0

если вы используете версию Windows 10 N или KN, вы должны установить Media Feature Pack для версий N et KN. https://www.microsoft.com/fr-fr/download/details.aspx?id=48231

0

Кроме того, попробуйте установить numpy + mkll вместо numpy из ссылки бинарного пакета двоичных пакетов для numpy + mkll. У меня была такая же ошибка, и это решение решило проблему для меня.

если вы установили простой numpy, не волнуйтесь, откройте cmd в каталоге, где вы загрузили новый пакет. использовать это:

pip install name_of_the_whl_file 

или

pip3 install name_of_the_whl_file

он автоматически удалит старый numpy и установит numpy + mkll. Кроме того, всегда помните, чтобы добавить оператор import numpy в свой код перед импортом cv2.

import numpy import cv2

Надеюсь, поможет.

0

Необходимые DLL файлы почти наверняка сохранены в opencv/build/x64/vc11/bin (этот путь будет другим, но эквивалентным, на основе любого используемого вами компилятора). Это единственная папка, которую нужно добавить в системный путь.

Убедитесь, что если у вас есть 32-разрядная версия Python, вы компилируете OpenCV с 32-разрядным компилятором. Откройте Python, и он расскажет вам свою архитектуру.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню