2016-05-31 17 views
2

python 3.5でopencvをインストールする際にいくつかの問題があります。Python 3.5でPython 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 (most recent call last): File "/Users/Jamie/Desktop/tester/test.py", line 2, in import cv File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv.py", line 1, in from cv2.cv import * ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so, 2): Symbol not found: _PyCObject_Type Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so Expected in: flat namespace in /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.so

私は/Library/Frameworks/Python.framework/Versions/3.5/bin

に正しく場所 /usr/local/Cellar/opencv/2.4.12_2/lib/python2.7/site-packagesからcv.pyとcv2.soをリンクしています

誰も助けてくれますか?

どうもありがとうございました

+1

をインストール入力することができますは、Python用にコンパイルOpenCVのをロードしようとしています2 Python 3.5を使って?それは動作しません。数ヶ月前にPython 3のopencv3をどのようにコンパイルしたのかを書いてあります。https://github.com/julienpalard/grid-finder –

答えて

1

は答えを見つけ - this websiteの指示に従ってくださいしかし、あなたは、あなたが使用しているのpythonのバージョンに変更する必要があります。

また、私は仮想環境を気にしませんでした。

最後に、実際には、作成したbuild/libフォルダにcv2.soという名前のcv2.cpython-35m-darwin.soがあります。

これが機能します。

+1

将来的には、 'ln -s cv2 .cpython-35m-darwin.so cv2.so'となりますので、 'import cv2'を使ってインポートすることができます。 :-) – gglasses

+1

ちょっとgglasses、あなたが言ったように私はどのようにシンボリックリンクを作成するのですか? – Tam

+0

ln -s cv2.cpython-35m-darwin.so cv2.so – user391339

0

偉大な答えJamieS、私もそのウェブサイトに従った。私はしかし、あなたがこれを行う必要があり、それはのpython3仮想ENVに表示されるようにするには...

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 . 

をこれらで全体のプロセスを再現可能にするためにしようとした目標を作る:

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/) 

次に、あなたがそれかどうかをテストすることができますcv2.cpython-35m-darwin.soはあなたが必要とする唯一のものですが、私はちょうど両方のコピー..私はOSXのためだと思う

import cv2 # Imports without problems... 

に動作します。

4

Pythonのバージョンを変更する必要はありません、あなただけのピップコマンドに オープンCMD(管理者モード)を使用して

ピップは、OpenCVの-pythonの

関連する問題