python 3.5

时间:2016-05-31 21:24:39

标签: python opencv

我在使用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

有人可以帮忙吗?

非常感谢

3 个答案:

答案 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是你唯一需要的,但我只是复制了它们。