Проблема в том, что py2app встраивает в пакет совершенно другой дистрибутив Python.Предполагается, что дистрибутив является автономным, поэтому он должен включать все библиотеки, которые приложение может использовать во время выполнения (включая OpenCV).К сожалению, py2app, похоже, пропускает необходимый файл cv2.so из dist / helloworld.app / Contents / Resources / lib / python2.7 / lib-dynload / (см. http://pythonhosted.org/py2app/implementation.html).
Вот чтоРабочая установка OpenCV выглядит следующим образом:
bash-3.2$ ls -1 /usr/local/lib/python2.7/site-packages/cv*
/usr/local/lib/python2.7/site-packages/cv.py
/usr/local/lib/python2.7/site-packages/cv.pyc
/usr/local/lib/python2.7/site-packages/cv2.so
Таким образом, теоретически, копирование cv2.so в dist / helloworld.app / Contents / Resources / lib / python2.X / lib-dynload / должно решить проблему.
К сожалению, возникает другая проблема:
bash-3.2$ dist/main_wx.app/Contents/MacOS/main_wx
Segmentation fault: 11
cv2.so имеет массу зависимостей, которые необходимо включить:
bash-3.2$ otool -L /usr/local/Cellar/opencv/2.4.5/lib/python2.7/site-packages/cv2.so
/usr/local/Cellar/opencv/2.4.5/lib/python2.7/site-packages/cv2.so:
/usr/local/lib/python2.7/site-packages/cv2.so (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_core.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_flann.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_imgproc.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_video.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_ml.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_highgui.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_features2d.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_calib3d.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_photo.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_objdetect.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_contrib.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_legacy.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_gpu.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_ocl.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/local/Cellar/opencv/2.4.5/lib/libopencv_nonfree.2.4.dylib (compatibility version 2.4.0, current version 2.4.5)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
Я не уверенкак с ними справиться, но у меня есть ощущение, что без них ничего не получится. Я оставляю это здесь в надежде, что кто-то другой сможет использовать это, чтобы найти решение.