我在使用python 3.5安装opencv时遇到了一些困难。
我已关联cv文件,但在import cv2
后,我收到错误ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so, 2): Symbol not found: _PyCObject_Type
或更具体地说:
/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/Jamie/Desktop/tester/test.py Traceback(最近一次调用最后一次): 文件“/Users/Jamie/Desktop/tester/test.py”,第2行,in 进口简历 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv.py”,第1行,in 来自cv2.cv import * ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so,2):找不到符号:_PyCObject_Type 参考自:/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so 预计在:平面命名空间 在/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so
我已将位置/usr/local/Cellar/opencv/2.4.12_2/lib/python2.7/site-packages
的cv.py和cv2.so正确链接到/Library/Frameworks/Python.framework/Versions/3.5/bin
有人可以帮忙吗?
非常感谢
答案 0 :(得分:6)
无需更改python版本,只需使用pip命令即可 打开cmd(管理员模式)并输入
pip install opencv-python
答案 1 :(得分:2)
找到答案 - 按照this website上的说明操作,但您必须更改为正在使用的python版本。
另外,我没有打扰虚拟环境。
最后,cv2.so实际上在你生成的build / lib文件夹中被称为cv2.cpython-35m-darwin.so。
然后它有效。
答案 2 :(得分:0)
很棒的回答JamieS,我也跟着那个网站。我尝试用这些制作目标使整个过程可重复。
opencv-build:
source $(VENV_DIR)/bin/activate && \
cd $(OPENCV_SRC) && \
mkdir -p build && \
cd build && \
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=$(realpath $(BUILD_DIR)) \
-D PYTHON3_NUMPY_INCLUDE_DIRS=$(realpath $(VENV_DIR)/lib/python3.5/site-packages/numpy/core/include) \
-D BUILD_opencv_python3=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=$(realpath $(OPENCV_CONTRIB_SRC)/modules) \
-D BUILD_EXAMPLES=ON .. && \
make -j4 -C .
要使它出现在python3虚拟环境中,你需要这样做:
so-copy:
cp $(realpath $(OPENCV_SRC)/build/lib/cv2.so) $(realpath $(VENV_DIR)/lib/python3.5/site-packages/)
cp $(realpath $(OPENCV_SRC)/build/lib/python3/cv2.cpython-35m-darwin.so) $(realpath $(VENV_DIR)/lib/python3.5/site-packages/)
然后你可以测试它是否有效..
import cv2 # Imports without problems...
我认为对于osx而言,cv2.cpython-35m-darwin.so是你唯一需要的,但我只是复制了它们。