导入错误:dlopen(/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so,2)

导入错误:dlopen(/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so,2),python,python-3.x,opencv,pyqt5,pyinstaller,Python,Python 3.x,Opencv,Pyqt5,Pyinstaller,我在MacOS中使用Pyinstaller和OpenCV。在构建独立应用程序之后,我得到以下错误。我尝试过不同版本的模块,但都不管用 我正在使用 MacOs版本:10.14.5 python:3.6 pyinstaller:3.4 opencv python:3.4.5 错误: File "main.py", line 19, in <module> File "/Library/Frameworks/Python.framework/Versions/3.6/lib/pyt

我在MacOS中使用Pyinstaller和OpenCV。在构建独立应用程序之后,我得到以下错误。我尝试过不同版本的模块,但都不管用

我正在使用

  • MacOs版本:10.14.5
  • python:3.6
  • pyinstaller:3.4
  • opencv python:3.4.5
错误:

File "main.py", line 19, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages/cv2/__init__.py", line 3, in <module>
ImportError: dlopen(/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so, 2): Symbol not found: __ZN10QBoxLayout10invalidateEv
  Referenced from: /Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so
  Expected in: /Users/Desktop/myapp/target/myapp_mac/PyQt5/../QtGui
 in /Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so
文件“main.py”,第19行,在
exec_模块中的文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/PyInstaller/loader/pyimod03_importers.py”,第627行
exec(字节码、模块、指令)
文件“site packages/cv2/_init__.py”,第3行,在
导入错误:dlopen(/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so,2):未找到符号:_ZN10QBoxLayout10invalidateEv
引用自:/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so
预期位于:/Users/Desktop/myapp/target/myapp\u mac/PyQt5/。/QtGui
在/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so中

简而言之,根据您的项目,尝试使用包
opencv-python-headless
而不是
opencv-python

我只是让它为我自己工作。问题似乎在于包
opencvpython
链接到了Qt4,py安装程序从PySide2复制了Qt5二进制文件,因此无法找到符号

opencv python headless

$ otool -L venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so
venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so:
        /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
        @loader_path/.dylibs/libavcodec.58.35.100.dylib (compatibility version 58.0.0, current version 58.35.100)
        @loader_path/.dylibs/libavformat.58.20.100.dylib (compatibility version 58.0.0, current version 58.20.100)
        @loader_path/.dylibs/libavutil.56.22.100.dylib (compatibility version 56.0.0, current version 56.22.100)
        @loader_path/.dylibs/libswscale.5.3.100.dylib (compatibility version 5.0.0, current version 5.3.100)
        @loader_path/.dylibs/libavresample.4.0.0.dylib (compatibility version 4.0.0, current version 4.0.0)
        /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
        /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 1070.22.0)
        /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
        /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
        /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.82.104)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
opencv python

$ otool -L venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so
venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so:
        /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
        @loader_path/.dylibs/libavcodec.58.35.100.dylib (compatibility version 58.0.0, current version 58.35.100)
        @loader_path/.dylibs/libavformat.58.20.100.dylib (compatibility version 58.0.0, current version 58.20.100)
        @loader_path/.dylibs/libavutil.56.22.100.dylib (compatibility version 56.0.0, current version 56.22.100)
        @loader_path/.dylibs/libswscale.5.3.100.dylib (compatibility version 5.0.0, current version 5.3.100)
        @loader_path/.dylibs/libavresample.4.0.0.dylib (compatibility version 4.0.0, current version 4.0.0)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
        /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
        /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 1070.22.0)
        /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
        /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
        @loader_path/.dylibs/QtGui (compatibility version 4.8.0, current version 4.8.7)
        @loader_path/.dylibs/QtTest (compatibility version 4.8.0, current version 4.8.7)
        @loader_path/.dylibs/QtCore (compatibility version 4.8.0, current version 4.8.7)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

我确实读过,如果您的代码没有调用
cv2.imshow(…)
,则可以使用headless。我将进一步调查,因为windows版本没有附带qt二进制文件,也没有相同的问题

简言之,根据您的项目,尝试使用包
opencv python headless
而不是
opencv python

我只是让它为我自己工作。问题似乎在于包
opencvpython
链接到了Qt4,py安装程序从PySide2复制了Qt5二进制文件,因此无法找到符号

opencv python headless

$ otool -L venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so
venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so:
        /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
        @loader_path/.dylibs/libavcodec.58.35.100.dylib (compatibility version 58.0.0, current version 58.35.100)
        @loader_path/.dylibs/libavformat.58.20.100.dylib (compatibility version 58.0.0, current version 58.20.100)
        @loader_path/.dylibs/libavutil.56.22.100.dylib (compatibility version 56.0.0, current version 56.22.100)
        @loader_path/.dylibs/libswscale.5.3.100.dylib (compatibility version 5.0.0, current version 5.3.100)
        @loader_path/.dylibs/libavresample.4.0.0.dylib (compatibility version 4.0.0, current version 4.0.0)
        /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
        /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 1070.22.0)
        /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
        /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
        /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.82.104)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
opencv python

$ otool -L venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so
venv/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so:
        /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
        @loader_path/.dylibs/libavcodec.58.35.100.dylib (compatibility version 58.0.0, current version 58.35.100)
        @loader_path/.dylibs/libavformat.58.20.100.dylib (compatibility version 58.0.0, current version 58.20.100)
        @loader_path/.dylibs/libavutil.56.22.100.dylib (compatibility version 56.0.0, current version 56.22.100)
        @loader_path/.dylibs/libswscale.5.3.100.dylib (compatibility version 5.0.0, current version 5.3.100)
        @loader_path/.dylibs/libavresample.4.0.0.dylib (compatibility version 4.0.0, current version 4.0.0)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
        /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
        /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 1070.22.0)
        /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
        /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
        @loader_path/.dylibs/QtGui (compatibility version 4.8.0, current version 4.8.7)
        @loader_path/.dylibs/QtTest (compatibility version 4.8.0, current version 4.8.7)
        @loader_path/.dylibs/QtCore (compatibility version 4.8.0, current version 4.8.7)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.63.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

我确实读过,如果您的代码没有调用
cv2.imshow(…)
,则可以使用headless。我将进一步调查,因为windows版本没有附带qt二进制文件,也没有相同的问题

您使用的是哪个版本的qt,以及哪个绑定,PySide2或PyQT5?我有一个确切的错误,我正在努力找出它。应用程序运行,但被PyInstaller冻结时不会运行。您使用的是哪个版本的Qt,以及哪些绑定,PySide2或PyQT5?我有一个确切的错误,我正在努力找出它。应用程序运行,但在PyInstaller冻结时不运行