Скомпилируйте приложение обнаружения объектов Python на основе OpenCV с помощью PyInstallerPython

Программы на Python
Ответить
Anonymous
 Скомпилируйте приложение обнаружения объектов Python на основе OpenCV с помощью PyInstaller

Сообщение Anonymous »

Я написал скрипт Python, который захватывает видеопоток с камеры и выполняет обнаружение объектов.
Для этого я использую opencv.

Код: Выделить всё

opencv-python-headless    4.12.0.88                pypi_0    pypi
pyinstaller               6.17.0                   pypi_0    pypi
pyinstaller-hooks-contrib 2025.10                  pypi_0    pypi
Этот сценарий хорошо работает на моей машине при запуске в IDE. Однако после компиляции с помощью PyInstaller я получаю ошибки импорта DLL, как показано ниже:

Код: Выделить всё

Traceback (most recent call last):
File "main.py", line 13, in 
File "C:\Users\APU\AppData\Local\Temp\_MEI336202\cv2\__init__.py", line 181, in 
bootstrap()
File "C:\Users\APU\AppData\Local\Temp\_MEI336202\cv2\__init__.py", line 153, in bootstrap
native_module = importlib.import_module("cv2")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "importlib\__init__.py", line 90, in import_module
ImportError: DLL load failed while importing cv2: Le module spécifié est introuvable.
[PYI-34956:ERROR] Failed to execute script 'main' due to unhandled exception!
После тщательного поиска в Интернете кажется, что интеграция PyInstaller и OpenCV является хорошо известной проблемой, но большинству тем, обсуждающих эту проблему, уже 4 года, и они предлагают перейти на OpenCV 4.5.5.64.
Что я пробовал без успеха:
  • использование opencv-python-headless вместо opencv-python.
  • понизился до OpenCV 4.5.5.64, как было предложено, но затем у меня возникли проблемы с импортом нескольких массивов, которые я не смог решить, даже пробуя разные версии numpy.
  • Сначала я попытался скомпилировать свое приложение как один файл без указания скрытого импорта и дополнительных двоичных файлов. У меня не получилось.
  • Я пытался добавить cv2 в качестве скрытого импорта, но это все равно не сработало.
  • Я пытался избавиться от флага --onefile, и это вызвало ту же ошибку, что и показанная выше.
Я не пытался включать библиотеки DLL с помощью команды --add-binary, так как не уверен, какие библиотеки мне нужно передать.
Мои вопросы являются:
  • Какой на данный момент рекомендуется скомпилировать приложение Python с использованием opencv?
  • Можно ли это использовать с последней версией Pyinstaller и последней версией OpenCV или мне следует попробовать другой инструмент для связывания?
Большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... yinstaller
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»