Error recursion is detected during loading of cv2 binary extensions check opencv installation

Seeing a similar issue to #432 with opencv-python==4.6.0.66 packaged using pyinstaller==4.4. It works fine when running from source; the issue only occurs when packaged. opencv-python==4.5.5.64 wor...

@mrjeckel

Seeing a similar issue to #432 with opencv-python==4.6.0.66 packaged using pyinstaller==4.4. It works fine when running from source; the issue only occurs when packaged. opencv-python==4.5.5.64 works fine.

My Env:
Ubuntu 16
Python3.8
opencv-python==4.6.0.66
pyinstaller==4.4

Traceback (most recent call last):
  File "ftf_app_bambam.py", line 2, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 546, in exec_module
  File "taskmaster/app_manager.py", line 30, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 546, in exec_module
  File "hardware/ximea_camera/setup_tools/filter_tuning.py", line 9, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 546, in exec_module
  File "cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "importlib/__init__.py", line 127, in import_module
    applySysPathWorkaround = True
  File "PyInstaller/loader/pyimod03_importers.py", line 546, in exec_module
  File "cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "cv2/__init__.py", line 76, in bootstrap
    raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.
[11606] Failed to execute script 'ftf_app_bambam' due to unhandled exception!

@SeungjunNah

Same here. I also had to revert to 4.5.5.64

@asenyaev

Hi @mrjeckel, @SeungjunNah!

I’ve tried to reproduce the issue on my Ubuntu 18.04 installing Python3.8, opencv-python==4.6.0.66 and pyinstaller==4.4, but anything passed successfully.

My reproducing steps:

  1. Install opencv-python==4.6.0.66:
python3.8 -m pip install --force-reinstall --no-cache opencv-python==4.6.0.66
  1. Install pyinstaller==4.4:
python3.8 -m pip install --force-reinstall --no-cache pyinstaller==4.4
  1. Create py script:

test.py

import cv2

if __name__ == '__main__':
    print("Hello, world!")
  1. Use pyinstaller with this script:
pyinstaller --onefile test.py

Output

49 INFO: Python: 3.8.13
62 INFO: Platform: Linux-5.4.0-109-generic-x86_64-with-glibc2.27
63 INFO: wrote /home/user/test/test.spec
65 INFO: UPX is not available.
66 INFO: Extending PYTHONPATH with paths
['/home/user/test',
 '/home/user/test']
71 INFO: checking Analysis
71 INFO: Building Analysis because Analysis-00.toc is non existent
71 INFO: Initializing module dependency graph...
72 INFO: Caching module graph hooks...
80 INFO: Analyzing base_library.zip ...
2230 INFO: Processing pre-find module path hook distutils from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py'.
2231 INFO: distutils: retargeting to non-venv dir '/usr/lib/python3.8'
4462 INFO: Caching module dependency graph...
4640 INFO: running Analysis Analysis-00.toc
4663 INFO: Analyzing /home/user/test/test.py
6944 INFO: Processing pre-safe import module hook setuptools.extern.six.moves from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-setuptools.extern.six.moves.py'.
7311 INFO: Processing pre-find module path hook site from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/pre_find_module_path/hook-site.py'.
7312 INFO: site: retargeting to fake-dir '/home/user/.local/lib/python3.8/site-packages/PyInstaller/fake-modules'
10302 INFO: Processing module hooks...
10302 INFO: Loading module hook 'hook-cv2.py' from '/home/user/.local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
10303 INFO: Loading module hook 'hook-py.py' from '/home/user/.local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
10648 INFO: Loading module hook 'hook-pycparser.py' from '/home/user/.local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
10649 INFO: Loading module hook 'hook-pytest.py' from '/home/user/.local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
10931 INFO: Loading module hook 'hook-numpy._pytesttester.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
10933 INFO: Loading module hook 'hook-lib2to3.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
10939 INFO: Loading module hook 'hook-encodings.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11005 INFO: Loading module hook 'hook-pkg_resources.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11495 INFO: Processing pre-safe import module hook win32com from '/home/user/.local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py'.
11497 WARNING: Hidden import "pkg_resources.py2_warn" not found!
11497 WARNING: Hidden import "pkg_resources.markers" not found!
11500 INFO: Loading module hook 'hook-_tkinter.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11593 INFO: checking Tree
11593 INFO: Building Tree because Tree-00.toc is non existent
11593 INFO: Building Tree Tree-00.toc
11600 INFO: checking Tree
11600 INFO: Building Tree because Tree-01.toc is non existent
11600 INFO: Building Tree Tree-01.toc
11646 WARNING: Tcl modules directory /usr/share/tcltk/tcl8.6/../tcl8 does not exist.
11647 INFO: Loading module hook 'hook-scipy.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11648 INFO: Loading module hook 'hook-sysconfig.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11660 INFO: Loading module hook 'hook-numpy.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11720 INFO: Import to be excluded not found: 'f2py'
11743 INFO: Loading module hook 'hook-xml.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11743 INFO: Loading module hook 'hook-difflib.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11746 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11747 INFO: Loading module hook 'hook-pickle.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
11750 INFO: Loading module hook 'hook-setuptools.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12203 INFO: Loading module hook 'hook-setuptools.msvc.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12208 INFO: Loading module hook 'hook-distutils.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12208 INFO: Loading module hook 'hook-zope.interface.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12211 INFO: Loading module hook 'hook-distutils.util.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12214 INFO: Loading module hook 'hook-xml.dom.domreg.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12214 INFO: Loading module hook 'hook-packaging.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12214 INFO: Loading module hook 'hook-heapq.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12218 INFO: Loading module hook 'hook-multiprocessing.util.py' from '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks'...
12238 INFO: Looking for ctypes DLLs
12345 INFO: Analyzing run-time hooks ...
12349 INFO: Including run-time hook '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py'
12351 INFO: Including run-time hook '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py'
12353 INFO: Including run-time hook '/home/user/.local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py'
12363 INFO: Looking for dynamic libraries
12946 INFO: Looking for eggs
12946 INFO: Python library not in binary dependencies. Doing additional searching...
13003 INFO: Using Python library /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0
13013 INFO: Warnings written to /home/user/test/build/test/warn-test.txt
13072 INFO: Graph cross-reference written to /home/user/test/build/test/xref-test.html
13093 INFO: checking PYZ
13093 INFO: Building PYZ because PYZ-00.toc is non existent
13093 INFO: Building PYZ (ZlibArchive) /home/user/test/build/test/PYZ-00.pyz
13599 INFO: Building PYZ (ZlibArchive) /home/user/test/build/test/PYZ-00.pyz completed successfully.
13604 INFO: checking PKG
13604 INFO: Building PKG because PKG-00.toc is non existent
13604 INFO: Building PKG (CArchive) PKG-00.pkg
20729 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
20730 INFO: Bootloader /home/user/.local/lib/python3.8/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run
20731 INFO: checking EXE
20731 INFO: Building EXE because EXE-00.toc is non existent
20731 INFO: Building EXE from EXE-00.toc
20731 INFO: Appending archive to ELF section in EXE /home/user/test/dist/test
20766 INFO: Building EXE from EXE-00.toc completed successfully.

@asenyaev

I also tried to do the same steps in a container with Ubuntu 16, and it also finished successfully.

Output Ubuntu 16

85 INFO: Python: 3.8.3
86 INFO: Platform: Linux-5.4.0-109-generic-x86_64-with-glibc2.2.5
86 INFO: wrote /io/test.spec
88 INFO: UPX is not available.
89 INFO: Extending PYTHONPATH with paths
['/io', '/io']
171 INFO: checking Analysis
172 INFO: Building Analysis because Analysis-00.toc is non existent
172 INFO: Initializing module dependency graph...
174 INFO: Caching module graph hooks...
186 WARNING: Several hooks defined for module 'numpy'. Please take care they do not conflict.
191 INFO: Analyzing base_library.zip ...
2568 INFO: Processing pre-find module path hook distutils from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py'.
2602 INFO: distutils: retargeting to non-venv dir '/usr/local/lib/python3.8'
4837 INFO: Caching module dependency graph...
5019 INFO: running Analysis Analysis-00.toc
5034 INFO: Analyzing /io/test.py
6274 INFO: Processing pre-find module path hook site from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks/pre_find_module_path/hook-site.py'.
6274 INFO: site: retargeting to fake-dir '/usr/local/lib/python3.8/site-packages/PyInstaller/fake-modules'
8312 INFO: Processing module hooks...
8312 INFO: Loading module hook 'hook-cv2.py' from '/usr/local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
8314 INFO: Loading module hook 'hook-numpy.py' from '/usr/local/lib/python3.8/site-packages/numpy/_pyinstaller'...
8340 INFO: Import to be excluded not found: 'f2py'
8385 INFO: Loading module hook 'hook-numpy._pytesttester.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
8387 INFO: Loading module hook 'hook-lib2to3.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
8419 INFO: Loading module hook 'hook-encodings.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
8465 INFO: Loading module hook 'hook-pkg_resources.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
8630 INFO: Processing pre-safe import module hook win32com from '/usr/local/lib/python3.8/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py'.
9104 WARNING: Hidden import "pkg_resources.py2_warn" not found!
9104 WARNING: Hidden import "pkg_resources.markers" not found!
9107 INFO: Loading module hook 'hook-_tkinter.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9166 INFO: checking Tree
9172 INFO: checking Tree
9210 WARNING: Tcl modules directory /usr/share/tcltk/tcl8.6/../tcl8 does not exist.
9211 INFO: Loading module hook 'hook-sysconfig.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9222 INFO: Loading module hook 'hook-xml.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9274 INFO: Loading module hook 'hook-difflib.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9276 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9277 INFO: Loading module hook 'hook-pickle.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
9279 INFO: Loading module hook 'hook-setuptools.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10034 INFO: Loading module hook 'hook-setuptools.msvc.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10037 INFO: Loading module hook 'hook-distutils.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10037 INFO: Loading module hook 'hook-distutils.util.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10039 INFO: Loading module hook 'hook-heapq.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10041 INFO: Loading module hook 'hook-multiprocessing.util.py' from '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks'...
10058 INFO: Looking for ctypes DLLs
10167 INFO: Analyzing run-time hooks ...
10172 INFO: Including run-time hook '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py'
10174 INFO: Including run-time hook '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py'
10177 INFO: Including run-time hook '/usr/local/lib/python3.8/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py'
10188 INFO: Looking for dynamic libraries
10850 INFO: Looking for eggs
10850 INFO: Using Python library /root/Python-3.8.3/libpython3.8.so.1.0
10862 INFO: Warnings written to /io/build/test/warn-test.txt
10913 INFO: Graph cross-reference written to /io/build/test/xref-test.html
10930 INFO: checking PYZ
10930 INFO: Building PYZ because PYZ-00.toc is non existent
10930 INFO: Building PYZ (ZlibArchive) /io/build/test/PYZ-00.pyz
11454 INFO: Building PYZ (ZlibArchive) /io/build/test/PYZ-00.pyz completed successfully.
11460 INFO: checking PKG
11460 INFO: Building PKG because PKG-00.toc is non existent
11460 INFO: Building PKG (CArchive) PKG-00.pkg
23789 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
23792 INFO: Bootloader /usr/local/lib/python3.8/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run
23792 INFO: checking EXE
23792 INFO: Building EXE because EXE-00.toc is non existent
23792 INFO: Building EXE from EXE-00.toc
23793 INFO: Appending archive to ELF section in EXE /io/dist/test
23854 INFO: Building EXE from EXE-00.toc completed successfully.

@asenyaev

It can be something wrong with a local environment on your side. Could you check which OpenCV Python packages were installed using pip:

python3.8 -m pip list | grep -i opencv

Multiple OpenCV Python packages can break your environment. Please, use only one package at a time. In addition, I would suggest to use --force-reinstall flag for pip to be sure that re-installation happened.

@noword

I use Windows 10, python 3.8, newest version of opencv-python. When I try to pack a exe with pyinstaller, I have the exact same problem. opencv-python==4.5.5.64 works fine.

I compared two version of init.py
Maybe the key is in line 162:
4.5.5.64: native_module = importlib.import_module(«cv2.cv2»)
4.6.0.66: native_module = importlib.import_module(«cv2»)

@AeonDave

I have the same problem
however it only appears if I run my python project in trace mode
python 3.8
opencv-contrib-python 4.6.0.66

python3 -u -m trace -c run.py

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3.8/trace.py", line 756, in <module>
    main()
  File "/usr/lib/python3.8/trace.py", line 744, in main
    t.runctx(code, globs, globs)
  File "/usr/lib/python3.8/trace.py", line 450, in runctx
    exec(cmd, globals, locals)
  File "run.py", line 7, in <module>
    from apps import app
  File "/home/user/Projects/test/apps/__init__.py", line 8, in <module>
    from argo.services.source_service import SourceService
  File "/home/user/Projects/test/argo/services/source_service.py", line 4, in <module>
    import cv2
  File "/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py", line 76, in bootstrap
    raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

otherwise it works normally

@evgenii-d

Same problem on Windows 11 with Python 3.10.2, numpy==1.23.1, pyinstaller==5.2 and opencv-python==4.6.0.66

['C:\Users\a13\Desktop\build\dist\timelapse\base_library.zip', 'C:\Users\a13\Desktop\build\dist\timelapse\cv2', 'C:\Users\a13\Desktop\build\dist\timelapse\lib-dynload', 'C:\Users\a13\Desktop\build\dist\timelapse'] Traceback (most recent call last): File "main.py", line 6, in <module> import cv2 File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module File "cv2__init__.py", line 181, in <module> bootstrap() File "cv2__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") File "importlib__init__.py", line 126, in import_module if sys.path[0] == BASE_DIR or os.path.realpath(sys.path[0]) == BASE_DIR: File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module File "cv2__init__.py", line 181, in <module> bootstrap() File "cv2__init__.py", line 76, in bootstrap raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.') ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

With opencv-python==4.5.5.64 works like a charm.

@gauthierbuttez

Environment:

Windows 10

PyInstaller: 5.2

Python: 3.10.5

opencv-python 4.6.0.66

Problem:

I am trying to compile my Python code with PyInstaller. The exe is created and when I execute it, I get this error message:

Traceback (most recent call last):
  File "PhoneBot.py", line 343, in <module>
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "modulesprepare_envir_appium.py", line 24, in <module>
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "modulesmymodulesteam.py", line 13, in <module>
  File "C:UsersgauthAppDataLocalTemp_MEI40002cv2__init__.py", line 181, in <module>
    bootstrap()
  File "C:UsersgauthAppDataLocalTemp_MEI40002cv2__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "importlib__init__.py", line 126, in import_module
  File "C:UsersgauthAppDataLocalTemp_MEI40002cv2__init__.py", line 181, in <module>
    bootstrap()
  File "C:UsersgauthAppDataLocalTemp_MEI40002cv2__init__.py", line 76, in bootstrap
    raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

What did I try:

  • I deactivated my Antivirus.
    It didn’t work

I think I tried it all:

  • I installed the previous version of OpenCV:

    pip install opencv-python==4.5.3.56

It didn’t work

  • I installed the latest version:

    pip install —upgrade opencv-python
    pip install —upgrade pyinstaller

It didn’t work

  • I tried to force the reinstallation:

    pip3 install opencv-python —upgrade —force-reinstall

It didn’t work

  • I added the path of cv2:

    pyinstaller —onefile -F —uac-admin —icon=»icon_PhoneBot_256.ico» —clean —noconsole —collect-data pyshadow —paths=»C:UsersgauthAppDataLocalProgramsPythonPython310Libsite-packagescv2″ Project.py

It didn’t work

Here are the logs of PyInstaller if it can help:

130 INFO: PyInstaller: 5.2
130 INFO: Python: 3.10.5
268 INFO: Platform: Windows-10-10.0.19044-SP0
269 INFO: wrote C:UsersgauthDocumentsprojectproject_debug3project.spec
275 INFO: UPX is not available.
275 INFO: Removing temporary files and cleaning cache in C:UsersgauthAppDataLocalpyinstaller
353 INFO: Extending PYTHONPATH with paths
['C:\Users\gauth\Documents\project\project_debug3',
 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\Lib\site-packages\cv2']
1144 INFO: checking Analysis
1144 INFO: Building Analysis because Analysis-00.toc is non existent
1146 INFO: Initializing module dependency graph...
1152 INFO: Caching module graph hooks...
1162 WARNING: Several hooks defined for module 'numpy'. Please take care they do not conflict.
1171 INFO: Analyzing base_library.zip ...
6500 INFO: Processing pre-find module path hook distutils from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'.
6502 INFO: distutils: retargeting to non-venv dir 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib'
7762 INFO: Caching module dependency graph...
7923 INFO: running Analysis Analysis-00.toc
7940 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by C:UsersgauthAppDataLocalProgramsPythonPython310python.exe
8203 INFO: Analyzing C:UsersgauthDocumentsprojectproject_debug3project.py
9270 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-urllib3.packages.six.moves.py'.
13260 INFO: Processing pre-find module path hook site from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-site.py'.
13262 INFO: site: retargeting to fake-dir 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\fake-modules'
22225 INFO: Processing pre-safe import module hook six.moves from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-six.moves.py'.
32496 INFO: Processing module hooks...
32501 INFO: Loading module hook 'hook-certifi.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
32518 INFO: Loading module hook 'hook-Cryptodome.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
33041 INFO: Loading module hook 'hook-cryptography.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34553 INFO: Loading module hook 'hook-cv2.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34568 INFO: Loading module hook 'hook-google.api_core.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34571 INFO: Loading module hook 'hook-googleapiclient.model.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34647 WARNING: collect_data_files - skipping data collection for module 'googleapiclient.discovery' as it is not a package.
34648 INFO: Loading module hook 'hook-httplib2.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34657 INFO: Loading module hook 'hook-lxml.etree.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
34658 INFO: Loading module hook 'hook-lxml.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
35621 INFO: Loading module hook 'hook-pycparser.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
35622 INFO: Loading module hook 'hook-selenium.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
35985 INFO: Loading module hook 'hook-unidecode.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
37029 INFO: Loading module hook 'hook-numpy.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\Lib\site-packages\numpy\_pyinstaller'...
37120 INFO: Import to be excluded not found: 'f2py'
37133 INFO: Loading module hook 'hook-difflib.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37138 INFO: Loading module hook 'hook-distutils.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37139 INFO: Loading module hook 'hook-distutils.util.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37144 INFO: Loading module hook 'hook-encodings.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37742 INFO: Loading module hook 'hook-heapq.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37749 INFO: Loading module hook 'hook-lib2to3.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37806 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37812 INFO: Loading module hook 'hook-numpy._pytesttester.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
37818 INFO: Loading module hook 'hook-pandas.io.formats.style.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
39392 WARNING: Hidden import "jinja2" not found!
39392 INFO: Loading module hook 'hook-pandas.plotting.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
39494 INFO: Loading module hook 'hook-pandas.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
41173 INFO: Loading module hook 'hook-pickle.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
41180 INFO: Loading module hook 'hook-PIL.Image.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
42001 INFO: Loading module hook 'hook-PIL.ImageFilter.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
42008 INFO: Loading module hook 'hook-PIL.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
42034 INFO: Loading module hook 'hook-PIL.SpiderImagePlugin.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
42044 INFO: Loading module hook 'hook-pkg_resources.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
43000 INFO: Processing pre-safe import module hook win32com from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\pre_safe_import_module\hook-win32com.py'.
43424 WARNING: Hidden import "pkg_resources.py2_warn" not found!
43425 WARNING: Hidden import "pkg_resources.markers" not found!
43431 INFO: Loading module hook 'hook-platform.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
43436 INFO: Loading module hook 'hook-PyQt5.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
43663 WARNING: Hidden import "sip" not found!
43663 INFO: Loading module hook 'hook-PyQt5.QtCore.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
43837 INFO: Loading module hook 'hook-PyQt5.QtGui.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
44120 INFO: Loading module hook 'hook-PyQt5.QtWidgets.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
44428 INFO: Loading module hook 'hook-pytz.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
44731 INFO: Loading module hook 'hook-setuptools.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
46244 INFO: Loading module hook 'hook-sqlite3.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
46833 INFO: Loading module hook 'hook-sysconfig.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
46839 INFO: Loading module hook 'hook-win32ctypes.core.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
47606 INFO: Loading module hook 'hook-xml.dom.domreg.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
47607 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
47610 INFO: Loading module hook 'hook-xml.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
47611 INFO: Loading module hook 'hook-_tkinter.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
47785 INFO: checking Tree
47785 INFO: Building Tree because Tree-00.toc is non existent
47787 INFO: Building Tree Tree-00.toc
47929 INFO: checking Tree
47930 INFO: Building Tree because Tree-01.toc is non existent
47932 INFO: Building Tree Tree-01.toc
48034 INFO: checking Tree
48034 INFO: Building Tree because Tree-02.toc is non existent
48036 INFO: Building Tree Tree-02.toc
48043 INFO: Loading module hook 'hook-lxml.isoschematron.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
48053 INFO: Loading module hook 'hook-lxml.objectify.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
48054 INFO: Loading module hook 'hook-pythoncom.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
48631 INFO: Loading module hook 'hook-pywintypes.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
49207 INFO: Loading module hook 'hook-win32com.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
49737 INFO: Loading module hook 'hook-setuptools.msvc.py' from 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks'...
49837 INFO: Looking for ctypes DLLs
50085 INFO: Analyzing run-time hooks ...
50106 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_inspect.py'
50113 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py'
50120 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_win32api.py'
50121 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_win32comgenpy.py'
50123 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py'
50126 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_multiprocessing.py'
50130 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pyqt5.py'
50133 INFO: Including run-time hook 'C:\Users\gauth\AppData\Local\Programs\Python\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_subprocess.py'
50162 INFO: Looking for dynamic libraries
C:UsersgauthAppDataLocalProgramsPythonPython310libsite-packagesPyInstallerbuildingbuild_main.py:156: UserWarning: The numpy.array_api submodule is still experimental. See NEP 47.
  __import__(package)
54020 INFO: Looking for eggs
54021 INFO: Using Python library C:UsersgauthAppDataLocalProgramsPythonPython310python310.dll
54023 INFO: Found binding redirects:
[]
54041 INFO: Warnings written to C:UsersgauthDocumentsprojectproject_debug3buildprojectwarn-project.txt
54297 INFO: Graph cross-reference written to C:UsersgauthDocumentsprojectproject_debug3buildprojectxref-project.html
54366 INFO: Appending 'datas' from .spec
54373 INFO: checking PYZ
54373 INFO: Building PYZ because PYZ-00.toc is non existent
54375 INFO: Building PYZ (ZlibArchive) C:UsersgauthDocumentsprojectproject_debug3buildprojectPYZ-00.pyz
56527 INFO: Building PYZ (ZlibArchive) C:UsersgauthDocumentsprojectproject_debug3buildprojectPYZ-00.pyz completed successfully.
56577 INFO: checking PKG
56578 INFO: Building PKG because PKG-00.toc is non existent
56580 INFO: Building PKG (CArchive) project.pkg
86615 INFO: Building PKG (CArchive) project.pkg completed successfully.
86640 INFO: Bootloader C:UsersgauthAppDataLocalProgramsPythonPython310libsite-packagesPyInstallerbootloaderWindows-64bitrunw.exe
86640 INFO: checking EXE
86640 INFO: Building EXE because EXE-00.toc is non existent
86641 INFO: Building EXE from EXE-00.toc
86643 INFO: Copying bootloader EXE to C:UsersgauthDocumentsprojectproject_debug3distproject.exe.notanexecutable
86648 INFO: Copying icon to EXE
86653 INFO: Copying icons from ['C:\Users\gauth\Documents\project\project_debug3\icon_project_256.ico']
86654 INFO: Writing RT_GROUP_ICON 0 resource with 20 bytes
86654 INFO: Writing RT_ICON 1 resource with 14739 bytes
86657 INFO: Copying 0 resources to EXE
86657 INFO: Embedding manifest in EXE
86659 INFO: Updating manifest in C:UsersgauthDocumentsprojectproject_debug3distproject.exe.notanexecutable
86660 INFO: Updating resource type 24 name 1 language 0
86663 INFO: Appending PKG archive to EXE
86763 INFO: Fixing EXE headers
87437 INFO: Building EXE from EXE-00.toc completed successfully.

Is there anyone who has any idea how to fix this issue?

@dracenliu

115 INFO: PyInstaller: 5.2
115 INFO: Python: 3.10.5
179 INFO: Platform: Windows-10-10.0.22000-SP0
179 INFO: UPX is not available.
179 INFO: Extending PYTHONPATH with paths
['D:\workspaces_py\factorytools', 'D:\workspaces_py\factorytools']
19 WARNING: qt_material must be imported after PySide or PyQt!
965 INFO: checking Analysis
1162 INFO: Appending 'datas' from .spec
1179 INFO: checking PYZ
1296 INFO: checking PKG
1296 INFO: Building because toc changed
1296 INFO: Building PKG (CArchive) Tools.pkg
21271 INFO: Building PKG (CArchive) Tools.pkg completed successfully.
21271 INFO: Bootloader D:Program Filespythonlibsite-packagesPyInstallerbootloaderWindows-64bitrun.exe
21271 INFO: checking EXE
21271 INFO: Building because toc changed
21271 INFO: Building EXE from EXE-00.toc
21287 INFO: Copying bootloader EXE to D:workspaces_pyfactorytoolsdistTools.exe.notanexecutable
21400 INFO: Copying icon to EXE
21416 INFO: Copying icons from ['D:\Program Files\python\lib\site-packages\PyInstaller\bootloader\images\icon-console.ico']
21416 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes
21416 INFO: Writing RT_ICON 1 resource with 3752 bytes
21416 INFO: Writing RT_ICON 2 resource with 2216 bytes
21416 INFO: Writing RT_ICON 3 resource with 1384 bytes
21416 INFO: Writing RT_ICON 4 resource with 37019 bytes
21416 INFO: Writing RT_ICON 5 resource with 9640 bytes
21416 INFO: Writing RT_ICON 6 resource with 4264 bytes
21416 INFO: Writing RT_ICON 7 resource with 1128 bytes
21484 INFO: Copying 0 resources to EXE
21484 INFO: Embedding manifest in EXE
21484 INFO: Updating manifest in D:workspaces_pyfactorytoolsdistTools.exe.notanexecutable
21484 INFO: Updating resource type 24 name 1 language 0
21560 INFO: Appending PKG archive to EXE
21702 INFO: Fixing EXE headers
22098 INFO: Building EXE from EXE-00.toc completed successfully.
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.
    __cause__ = None
    __class__ = <class 'ImportError'>
    __context__ = None
    __delattr__ = <method-wrapper '__delattr__' of ImportError object>
    __dict__ = {}
    __dir__ = <built-in method __dir__ of ImportError object>
    __doc__ = "Import can't find module, or can't find name in module."
    __eq__ = <method-wrapper '__eq__' of ImportError object>
    __format__ = <built-in method __format__ of ImportError object>
    __ge__ = <method-wrapper '__ge__' of ImportError object>
    __getattribute__ = <method-wrapper '__getattribute__' of ImportError object>
    __gt__ = <method-wrapper '__gt__' of ImportError object>
    __hash__ = <method-wrapper '__hash__' of ImportError object>
    __init__ = <method-wrapper '__init__' of ImportError object>
    __init_subclass__ = <built-in method __init_subclass__ of type object>
    __le__ = <method-wrapper '__le__' of ImportError object>
    __lt__ = <method-wrapper '__lt__' of ImportError object>
    __ne__ = <method-wrapper '__ne__' of ImportError object>
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of ImportError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of ImportError object>
    __repr__ = <method-wrapper '__repr__' of ImportError object>
    __setattr__ = <method-wrapper '__setattr__' of ImportError object>
    __setstate__ = <built-in method __setstate__ of ImportError object>
    __sizeof__ = <built-in method __sizeof__ of ImportError object>
    __str__ = <method-wrapper '__str__' of ImportError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __suppress_context__ = False
    __traceback__ = <traceback object>
    args = ('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.',)
    msg = 'ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.'
    name = None
    path = None
    with_traceback = <built-in method with_traceback of ImportError object>

The above is a description of an error in a Python program.  Here is
the original traceback:

Traceback (most recent call last):
  File "uiMainWindow.py", line 120, in onStartBtnClicked
  File "msgfunc.py", line 39, in getFucClsByKey
  File "importlib__init__.py", line 126, in import_module
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "uiimagetestimagetestWindow.py", line 15, in <module>
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "uiimagetestadbsocket.py", line 5, in <module>
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "cv2__init__.py", line 181, in <module>
    bootstrap()
  File "cv2__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "importlib__init__.py", line 126, in import_module
  File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
  File "cv2__init__.py", line 181, in <module>
    bootstrap()
  File "cv2__init__.py", line 76, in bootstrap
    raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

I have the same problem! How to fix it?

@asmorkalov

@MarioPonce2910

Same here. I also had to revert to 4.5.5.64

Work for me ! Thx

@thucungcuatoi

#680 (comment)

4.5.5.64
I have same this issue and try reinstall opencv-python 4.5.5.64! It’s OK

@samuller

@asenyaev You didn’t show the result of running the executable? The exception doesn’t happen during the pyInstaller creation step, but only when the resulting executable is run, e.g. ./dist/test (or ./dist/test/test when --onefile isn’t used). I hope that’s the difference.

@asmorkalov I just quickly tried the code change used in the MR fix for #689 (i.e. https://github.com/opencv/opencv/pull/22269/files), but it didn’t make a difference to this issue on my local system. I might’ve made some mistake, but I suspect the iPython recursion issue might be different from this pyInstaller issue, and might not be fixed by that MR.

However, it looks like pyInstaller is aware of the issue, and they might have a fix on their side in an upcoming version: pyinstaller/pyinstaller#6964 (comment)

@Neizvestnyj

Same error. opencv-python==4.5.5.64 works

@Alexandro1112

commands

pip3 uninstall opencv-python==4.7.0.68

and

pip3 install -U opencv-python==4.5.3.56

successful installed OpenCV.

Содержание

  1. opencsv Bugs
  2. Group
  3. Searches
  4. #196 CsvToBean parse empty lines error
  5. Discussion
  6. ImportError: ERROR: recursion is detected during loading of «cv2» binary extensions. Check OpenCV installation. #680
  7. Comments
  8. OpenCV в Python: Часть 1 — Работа с изображениями и видео
  9. Начало работы с OpenCV
  10. Работа с видео в OpenCV
  11. Итоги

opencsv Bugs

Group

Searches

#196 CsvToBean parse empty lines error

Situation as the attachments.
I use CSVReader with ColumnPositionMappingStrategy readed the first 7 lines, then use CsvToBean to parse the left part. code like this:

Both of them throw RunTimeException «Error capturing CSV header!» .
After looking up the source code, i found reason at ColumnPositionMappingStrategy.java line 72(version 4.5)

String[] firstLine = reader.peek();// return null

Is this a bug ?
I think when encounter an empty line, csvToBean.parse() return null could be nicer

Discussion

Could you please send me your CSV file, the java class with your ReconRepayTempInfoDO and a small sample program that gets the error that you are seeing because I cannot recreate the error you are experiencing.

By default you the CsvToBean creates a HeaderColumnNameMappingStrategy and it requires that your first line be the header and the header matches fields in the object. If so then one of the two fields in your first line does not exist in your ReconRepayTempInfoDO object and that would give you an error capturing CSV Header message. But that said if I see your full test program I can see where you overrode with a ColumnPositionMappingStrategy and can come up with a test that matches it.

Also with the default HeaderColumnNameMappingStrategy you will get an error on your last line because you have more fields than you do with your header. But that error would be «Caused by: com.opencsv.exceptions.CsvRequiredFieldEmptyException: Number of data fields does not match number of headers.» and that is on purpose!

The other thing is that the skipLines will not skip the header it should skip the line after the header. But there again I am using the default CsvToBean.

Here is the test I added to CsvToBeanTest. If you can modify it to reproduce your result that would be awesome!!

Notice I have the .withThrowsException(false) commented out. With that uncommented out it would not throw an exception with the third data line (the one with more fields) but instead just skip it. So with throws exception as false and skip line as 1 I get back two data lines and with skip lines removed I get three.

. Reading what you are saying it sounds line you are using a CSVReader to read the first seven lines of the file and then pass the same reader (without closing it) into the CsvToBeanBuilder. Is that correct? If so your line 8 must be the Header (all the fields must match what is in the ReconRepayTempInfoDO. I will try and modify my test and see what happens but I will say if true that is the first time I have seen a csv file formatted this way.

Источник

ImportError: ERROR: recursion is detected during loading of «cv2» binary extensions. Check OpenCV installation. #680

Seeing a similar issue to #432 with opencv-python==4.6.0.66 packaged using pyinstaller==4.4. It works fine when running from source; the issue only occurs when packaged. opencv-python==4.5.5.64 works fine.

My Env:
Ubuntu 16
Python3.8
opencv-python==4.6.0.66
pyinstaller==4.4

The text was updated successfully, but these errors were encountered:

Same here. I also had to revert to 4.5.5.64

I’ve tried to reproduce the issue on my Ubuntu 18.04 installing Python3.8 , opencv-python==4.6.0.66 and pyinstaller==4.4 , but anything passed successfully.

My reproducing steps:

  1. Use pyinstaller with this script:

I also tried to do the same steps in a container with Ubuntu 16, and it also finished successfully.

Output Ubuntu 16

It can be something wrong with a local environment on your side. Could you check which OpenCV Python packages were installed using pip :

Multiple OpenCV Python packages can break your environment. Please, use only one package at a time. In addition, I would suggest to use —force-reinstall flag for pip to be sure that re-installation happened.

I use Windows 10, python 3.8, newest version of opencv-python. When I try to pack a exe with pyinstaller, I have the exact same problem. opencv-python==4.5.5.64 works fine.

I compared two version of init.py
Maybe the key is in line 162:
4.5.5.64: native_module = importlib.import_module(«cv2.cv2»)
4.6.0.66: native_module = importlib.import_module(«cv2»)

I have the same problem
however it only appears if I run my python project in trace mode
python 3.8
opencv-contrib-python 4.6.0.66

python3 -u -m trace -c run.py

otherwise it works normally

Same problem on Windows 11 with Python 3.10.2, numpy==1.23.1, pyinstaller==5.2 and opencv-python==4.6.0.66

[‘C:\Users\a13\Desktop\build\dist\timelapse\base_library.zip’, ‘C:\Users\a13\Desktop\build\dist\timelapse\cv2’, ‘C:\Users\a13\Desktop\build\dist\timelapse\lib-dynload’, ‘C:\Users\a13\Desktop\build\dist\timelapse’] Traceback (most recent call last): File «main.py», line 6, in import cv2 File «PyInstallerloaderpyimod03_importers.py», line 495, in exec_module File «cv2__init__.py», line 181, in bootstrap() File «cv2__init__.py», line 153, in bootstrap native_module = importlib.import_module(«cv2») File «importlib__init__.py», line 126, in import_module if sys.path[0] == BASE_DIR or os.path.realpath(sys.path[0]) == BASE_DIR: File «PyInstallerloaderpyimod03_importers.py», line 495, in exec_module File «cv2__init__.py», line 181, in bootstrap() File «cv2__init__.py», line 76, in bootstrap raise ImportError(‘ERROR: recursion is detected during loading of «cv2» binary extensions. Check OpenCV installation.’) ImportError: ERROR: recursion is detected during loading of «cv2» binary extensions. Check OpenCV installation.

With opencv-python==4.5.5.64 works like a charm.

Environment:

Problem:

I am trying to compile my Python code with PyInstaller. The exe is created and when I execute it, I get this error message:

What did I try:

  • I deactivated my Antivirus.
    It didn’t work

I think I tried it all:

I installed the previous version of OpenCV:

pip install opencv-python==4.5.3.56

I installed the latest version:

pip install —upgrade opencv-python
pip install —upgrade pyinstaller

I tried to force the reinstallation:

pip3 install opencv-python —upgrade —force-reinstall

I added the path of cv2:

pyinstaller —onefile -F —uac-admin —icon=»icon_PhoneBot_256.ico» —clean —noconsole —collect-data pyshadow —paths=»C:UsersgauthAppDataLocalProgramsPythonPython310Libsite-packagescv2″ Project.py

Here are the logs of PyInstaller if it can help:

Is there anyone who has any idea how to fix this issue?

Источник

OpenCV в Python: Часть 1 — Работа с изображениями и видео

Добро пожаловать! Перед вами первая статья из серии OpenCV в Python, которая, как вы уже догадались по названию, посвящена тому, как научиться комфортно работать в OpenCV.

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

Не будем терять времени, начнем!

Начало работы с OpenCV

Поскольку мы начинаем с самого начала, в этом разделе мы поговорим об основах обработки изображений. Чтобы начать работать с OpenCV, надо сначала ее установить. Для этого введите команду в терминале (на Windows):

Как только установка будет завершена, можно начинать писать код.

Для начала давайте импортируем необходимые библиотеки.

Модуль cv2 – это и есть OpenCV. Его мы будем использовать для анализа изображений и видео. Модуль argparse будет полезен при работе с аргументами, передаваемыми через терминал. Если вам неудобно работать с командой строкой, можете почитать это руководство (https://www.pyimagesearch.com/2018/03/12/python-argparse-command-line-arguments/), в котором все очень хорошо объясняется.

Работать мы будем с этим изображением.

Разместите это изображение (или любое другое на выбор) в директорию, где находится ваш файл с программой.

В терминале мы передадим это изображение в качестве аргумента, поэтому в файле с исходным кодом нужно сделать парсер аргументов.

После создания экземпляра argparse , добавим аргумент, который, по сути, сообщает, что изображение передается, как аргумент, и его нужно распарсить. Затем обработанный аргумент передается функции vars() , которая возвращает атрибут dict указанного объекта.

С помощью метода imread из cv2, мы положим изображение в переменную image .

Первый аргумент, передаваемый функции – это args[“image”] , обработанный аргумент, содержащий путь к изображению. Поскольку мы сохранили изображение в той же папке, просто передадим имя файла изображения.

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

Для отображения изображений используется метод imshow. Первый аргумент – заголовок отображаемого изображения, а второй – сама переменная изображения.

cv2.waitKey(0) будет ждать, пока пользователь не нажмет любую клавишу, после чего окно с изображением закроется.

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

OpenCV позволяет сохранить этот файл и записать его на диск. Что интересно, OpenCV также под капотом обрабатывает преобразование типов, то есть вы можете сохранить изначально .jpeg файл в формате .png.

Метод imwrite принимает путь к выходному изображению, которое будет сохранено в качестве первого аргумента, и переменную с изображением в качестве второго. Если вы хотите изменить тип файла, просто измените его в имени пути, а OpenCV позаботится об остальном.

А вот и полный код:

Команда для выполнения файла:

Примечание: Я назвал файл с программой app.py, а файл с изображением photo_one.jpeg, не забудьте вставить свои названия.

После выполнения этого файла, вы получите исходное изображение в оттенках серого:

В вашем основном каталоге создастся папка с изображениями, в которой вы увидите то же изображение, что и в файле newimage.png.

Работа с видео в OpenCV

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

Для начала импортируем библиотеки.

Теперь создадим объект VideoCapture , чтобы, как следует из названия, «захватывать» видео.

Число, которое мы передаем, означает источник. 0 – первая веб-камера в вашей системе, 1 – вторая и т.д.

Если вы хотите загрузить уже существующий видеофайл вместо захвата прямой трансляции, просто на место номера вставьте путь к нему.

Затем создадим цикл while , чтобы получать из источника кадр за кадром.

Функция cap.read() возвращает логическое значение (True/False) и кадр. Если кадр был считан верно, то возвращается True.

cv2.imshow() используется для отображения видео. Название видео будет первым аргументом.

Поскольку мы сделали бесконечный цикл, нам нужно что-то, что его прервет.

Поначалу этот фрагмент кода может показаться странным, но как только вы разберетесь в деталях, станет легче.

Функция waitKey(0) возвращает -1, когда ввод вообще не производится. Как только происходит событие, то есть нажимается кнопка, она возвращает 32-разрядное целое число.

В этом сценарии 0xFF – это 8-битный двоичный код 11111111, поскольку для представления символа «q». В результате вы получите целое число меньшее 255.

Следовательно, сравнивая целое число со значением ord(char) , мы можем проверить событие нажатия клавиши и прервать цикл[1].

После того, как мы закончим использовать камеру, ее нужно «освободить». Если мы этого не сделаем, то в следующий раз при попытке ее использовать, вы получите ошибку.

Теперь пришло время запустить файл. На всякий случай, если вы не проследили, приведу весь код этого раздела:

После выполнения файла, вы увидите изображение с веб-камеры в окне под названием «video feed». Чтобы закрыть окно, нажмите «q».

Помните, как мы преобразовали наше цветное изображение в оттенки серого и сохранили его на диске? То же самое можно сделать и с видео. Нужно просто внести несколько незначительных изменений.

В цикл while добавьте следующие инструкции:

После сохранения и выполнения файла вы получите два окна:

Версию в оттенках серого.

Теперь мы можем выводить два или более окон, когда хотим сравнить наши изменения с исходным файлом/потоком. Так проще обнаруживать изменения, которые мы внесли.

Также мы можем сохранить файл с помощью объекта VideoWriter . Перед этим нужно указать переменную fourcc (https://en.wikipedia.org/wiki/FourCC). FourCC – это 4-байтовый код, который используется для указания видеокодека. Полный список кодов можно посмотреть в кодеках FourCC (http://www.fourcc.org/codecs.php).

Имя выходного файла будет первым аргументом. Затем нужно передать количество кадров в секунду (fps) и размер кадра.

Чтобы сохранить видео, нужно записать каждый кадр в цикле while.

Не забудьте в конце освободить экземпляр VideoWriter .

После выполнения этого кода вы заметите, что видео с именем «output.avi» будет присутствовать в вашем главном каталоге. Вот видео, которое мы только что записали и сохранили на диск.

Итоги

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

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

Ссылки на следующие статьи будут появляться здесь же, так что следите.

Источник

Hi, I don’t know if this is a package issue or is a matter of Opencv, I was wanted to do a Arch actualization

but I got a out of disc space error, so I did a

to delete cache files, then I did the actualization, now I can’t import cv2 , I got the traceback:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/site-packages/cv2/__init__.py", line 89, in <module>
    bootstrap()
  File "/usr/lib/python3.7/site-packages/cv2/__init__.py", line 79, in bootstrap
    import cv2
  File "/usr/lib/python3.7/site-packages/cv2/__init__.py", line 89, in <module>
    bootstrap()
  File "/usr/lib/python3.7/site-packages/cv2/__init__.py", line 23, in bootstrap
    raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

I got to /usr/lib/python3.7/site-packages/cv2/__init__.py do a copy and then try to solve by myself but I can’t find how to solve, so i restored the copy :

'''
OpenCV Python binary extension loader
'''
import os
import sys

try:
    import numpy
    import numpy.core.multiarray
except ImportError:
    print('OpenCV bindings requires "numpy" package.')
    print('Install it via command:')
    print('    pip install numpy')
    raise

# TODO
# is_x64 = sys.maxsize > 2**32

def bootstrap():
    import sys
    if hasattr(sys, 'OpenCV_LOADER'):
        print(sys.path)
        raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
    sys.OpenCV_LOADER = True

    DEBUG = False
    if hasattr(sys, 'OpenCV_LOADER_DEBUG'):
        DEBUG = True

    import platform
    if DEBUG: print('OpenCV loader: os.name="{}"  platform.system()="{}"'.format(os.name, str(platform.system())))

    LOADER_DIR=os.path.dirname(os.path.abspath(__file__))

    PYTHON_EXTENSIONS_PATHS = []
    BINARIES_PATHS = []

    g_vars = globals()
    l_vars = locals()

    if sys.version_info[:2] < (3, 0):
        from cv2.load_config_py2 import exec_file_wrapper
    else:
        from . load_config_py3 import exec_file_wrapper

    def load_first_config(fnames, required=True):
        for fname in fnames:
            fpath = os.path.join(LOADER_DIR, fname)
            if not os.path.exists(fpath):
                if DEBUG: print('OpenCV loader: config not found, skip: {}'.format(fpath))
                continue
            if DEBUG: print('OpenCV loader: loading config: {}'.format(fpath))
            exec_file_wrapper(fpath, g_vars, l_vars)
            return True
        if required:
            raise ImportError('OpenCV loader: missing configuration file: {}. Check OpenCV installation.'.format(fnames))

    load_first_config(['config.py'], True)
    load_first_config([
        'config-{}.{}.py'.format(sys.version_info[0], sys.version_info[1]),
        'config-{}.py'.format(sys.version_info[0])
    ], True)

    if DEBUG: print('OpenCV loader: PYTHON_EXTENSIONS_PATHS={}'.format(str(l_vars['PYTHON_EXTENSIONS_PATHS'])))
    if DEBUG: print('OpenCV loader: BINARIES_PATHS={}'.format(str(l_vars['BINARIES_PATHS'])))

    for p in reversed(l_vars['PYTHON_EXTENSIONS_PATHS']):
        sys.path.insert(0, p)

    if os.name == 'nt':
        os.environ['PATH'] = ';'.join(l_vars['BINARIES_PATHS']) + ';' + os.environ.get('PATH', '')
        if DEBUG: print('OpenCV loader: PATH={}'.format(str(os.environ['PATH'])))
    else:
        # amending of LD_LIBRARY_PATH works for sub-processes only
        os.environ['LD_LIBRARY_PATH'] = ':'.join(l_vars['BINARIES_PATHS']) + ':' + os.environ.get('LD_LIBRARY_PATH', '')

    if DEBUG: print('OpenCV loader: replacing cv2 module')
    del sys.modules['cv2']
    import cv2

    try:
        import sys
        del sys.OpenCV_LOADER
    except:
        pass

    if DEBUG: print('OpenCV loader: DONE')

bootstrap()

load_config_py3.py:

# flake8: noqa
import os
import sys

if sys.version_info[:2] >= (3, 0):
    def exec_file_wrapper(fpath, g_vars, l_vars):
        with open(fpath) as f:
            code = compile(f.read(), os.path.basename(fpath), 'exec')
            exec(code, g_vars, l_vars)

config-3.7.py

PYTHON_EXTENSIONS_PATHS = [
    '/build/opencv/src/build/lib/python3'
] + PYTHON_EXTENSIONS_PATHS

config.py

BINARIES_PATHS = [
    '/build/opencv/src/build/lib'
] + BINARIES_PATHS

I’m using opencv-3.4.4-1 with Python 3.7.1 , I think that maybe there and opencv problem (not of pacman or or mine) because of this posts

Note :
I already did a

 
sudo pacman -R opencv
sudo pacman -Sc 
sudo pacman -S opencv
 

but the problem still remains.

1 / 1 / 0

Регистрация: 02.04.2022

Сообщений: 73

1

20.07.2022, 19:04. Показов 472. Ответов 2


Здравствуйте, не получается скомпилировать python (pyinstaller) с cv2. После компиляции выскакивает такая ошибка:
ImportError: ERROR: recursion is detected during loading of «cv2» binary extensions. Check OpenCV installation.
[94284] Failed to execute script ‘test’ due to unhandled exception!
Хотя python файл работает

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

20.07.2022, 19:04

Ответы с готовыми решениями:

Python cv2 сконвертировать Python многомерный массив в картинку
Python cv2, необходимо сконвертировать многомерный массив в картинку, например:
Дано:
,
,
]…

Ошибка после компиляции в Python
Здравствуйте.
Не пойму что происходит.При запуске программе в интерпретаторе Pethon она…

Python | Ошибки при компиляции
Пытаюсь скомпиллировать телеграм бота,при компиляции выкидывает на левые ошибки не относящиеся к…

Ошибка компиляции в Visual Python 2.9. Спасибо за уделённое время
#Основные значения для исследуемых зарядов
Q1=3e-9
Q2=2e-9
ball=sphere( pos=vector(0,6,0),…

Ошибка cv2
Крч, tkinter’ом воспроизводить видео это муторно, решил с помощью cv2 делать
Ну, нашёл в инете…

2

3690 / 2269 / 491

Регистрация: 07.11.2019

Сообщений: 3,829

20.07.2022, 19:21

2

hddppdpp, в интернете советуют сменить версию OpenCV

Код

pip install opencv-python==4.5.3.56



0



1 / 1 / 0

Регистрация: 02.04.2022

Сообщений: 73

20.07.2022, 21:14

 [ТС]

3

не помогло



0



Понравилась статья? Поделить с друзьями:
  • Error registering this mod
  • Error registering runner failed
  • Error registering hosted class code 0x80040111
  • Error registering com application contact your support personnel for more information
  • Error registering appinfo mbean kafka