[英]ImportError: dlopen(/Users/Desktop/myapp/target/myapp_mac/cv2/cv2.cpython-36m-darwin.so, 2)
I'm using Pyinstaller and OpenCV in MacOS. 我在MacOS中使用Pyinstaller和OpenCV。 After building my standalone application, I'm getting the error below. 构建独立应用程序后,出现以下错误。 I've tried different versions of the modules, but nothing worked for me. 我尝试了不同版本的模块,但没有任何效果。
I'm Using 我正在使用
The error: 错误:
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
In short, depending on your project, try the package opencv-python-headless
instead of opencv-python
简而言之,根据您的项目,尝试使用包opencv-python-headless
而不是opencv-python
I just got this working for my self. 我只是为了自己而工作。 the problem appears to be the package opencv-python
is linked to Qt4, py installer copies the Qt5 binaries from PySide2 and thus the symbol can't be found. 问题似乎是opencv-python
软件包链接到Qt4,py安装程序从PySide2复制了Qt5二进制文件,因此找不到该符号。
from opencv-python-headless
: 来自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)
from opencv-python
: 从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)
I did read that the headless can be used if your code is not calling cv2.imshow(...)
. 我确实读过,如果您的代码未调用cv2.imshow(...)
,则可以使用无头代码。 I am going to investigate further because the the windows version doesn't ship with the qt binaries and doesn't have the same problem 我将进一步调查,因为Windows版本不附带qt二进制文件,并且没有相同的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.