2016-08-23 114 views
2

這就是我在嘗試將cv2導入python3.5 IDLE時所得到的結果。 我正在使用OpenCV 3.1.0 Python3.5.2 Ubuntu 16.04Python 3.5 ImportError:動態模塊沒有定義模塊導出函數(PyInit_cv2)

我嘗試了很多安裝方法,但沒有人解決了我的問題,我有導入在終端上工作,但它也停止了。 任何人都可能有解決方案?

編輯:我跟着這個鏈接教程:

http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/

回答

0

對於python3,您需要提供蟒蛇一個init方法爲入口,

這在cv.py我猜。但在我的情況下,

此文件不存在。我從google code複製自己。

如果未提供cv.py

你可能會得到錯誤ImportError: dynamic module does not define init function (PyInit_cv2)import cv2在python3(在python2沒有這樣的問題)。

+0

謝謝你的答案,它解決了終端的問題,但我仍然在IDLE中 –

0

我安裝了其他版本的OpenCV後(出於各種原因,其中一個安裝ROS,它有自己的OpenCV版本),我遇到了這個問題。看來這造成了衝突。爲了確保PyOpenCV被加載正確輸入一個交互式會話,並檢查:

import sys 
print(sys.path) 

你可以試試裏面空閒也是如此。

cv2.cpython-35m-x86_64-linux-gnu.so的路徑應該出現在那裏。如果沒有,請將其插入路徑:

sys.path.insert(1, '<path to .../dist-packages with cpython so>') 

確保它在任何其他可能導致衝突的選項之前執行。然後再試一次:

import cv2 

它現在應該工作,這將意味着問題是python路徑。它也可能有助於弄清楚在你的案例中是什麼造成了衝突,以及如何最好地爲你解決衝突。

-1

首先,你需要get-pip.py,它的安裝PIP一個偉大的工具,從來沒有任何問題:

wget https://bootstrap.pypa.io/get-pip.py

然後,你需要安裝PIP爲python3,我有python3.5但這對於任何版本,我相信工作:

python3.5 get-pip.py

現在PIP安裝了python3.5,爲了與你需要python3中調用它python3.4使用它。5這樣的:

python3.5 -m pip

所以,如果你想安裝numpy的你會用:

python3.5 -m pip install numpy

0

我也有過,當我工作的計算機上使用ROS環境這個問題。對我來說最簡單的解決方案是不通過註釋行並重新啓動終端來在.bashrc中獲取ROS環境。

相關問題