21

今天我在 Ubuntu 12.10 上安装了 opencv 2.4.4

但导入 cv2 不起作用。

root@-:~# python
Python 2.7.3 (default, Sep 26 2012, 21:53:58) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> 

据我了解 cv2.so 错过了,所以 python 看不到 opencv 在哪里

root@-:~# find / -name "cv.py"
/root/opencv-2.4.4/modules/python/src2/cv.py
root@-:~# find / -name "cv2.so"
root@-:~#

我的设置步骤看起来像

wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.4/OpenCV-2.4.4a.tar.bz2
tar -xjf OpenCV-2.4.4a.tar.bz2
cd opencv-2.4.4
mkdir release
cd release 
cmake -D CMAKE_BUILD_TYPE=RELEASE   -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..
make && make install
echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
ldconfig  
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/bash.bashrc
echo "export PKG_CONFIG_PATH" >> /etc/bash.bashrc

cv2.so 在哪里?为什么它被错过了?

4

9 回答 9

47

如何在 Linux 中使用 python 绑定安装 opencv(cv2) - Ubuntu/Fedora

  1. 安装 gcc、g++/gcc-c++、cmake(apt-get 或 yum,yum 使用 gcc-c++)

    apt-get install gcc, g++, cmake
    
  2. 从openCV 的网站下载最新的 opencv

  3. 解压它

    tar -xvf opencv-*
    
  4. 在未解压的文件夹中创建一个名为的新文件夹release

    mkdir release
    cd release
    

    (或任何文件夹名称)并在其中运行此命令

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
    

    ..将从父母文件夹中提取文件,并使系统准备好在您的平台上安装。

  5. 在发布文件夹中运行

    make
    
  6. 完成运行后大约 2-3 分钟的 make 处理

    sudo make install
    
  7. 导出python路径

    export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
    

就是这样,现在去python试试

>>> import cv2

您不应该收到任何错误消息。

在 python 2.7 上测试,应该与 python 3.x 几乎相似。

于 2013-04-14T19:46:39.263 回答
11

我安装python-opencv以解决我在 Ubuntu 14.04 中的问题 sh sudo apt-get install python-opencv

于 2016-04-15T09:01:25.290 回答
5

在 rasberry pi 上使用 raspbian 我也遇到了找不到模块的问题。我有三个版本的 python(2.6、2.7 和 3.2),请确保您使用的是 python2.7。您可以通过运行检查这一点:

python --version

我发现就我的情况而言,我只是需要安装 python-dev。

sudo apt-get install python-dev

我不必删除并重新安装opencv,我尽我所能避免这种情况,因为我知道完成这个过程需要几个小时。

安装 python-dev 后,我转到我构建 opencv 的文件,对我来说它是“~/opencv-2.4.9/release”,并告诉它制作

sudo make

在此之后,我能够找到 cv2.so 文件。搜索它:

find / -name "cv2.so"

此时我找到了一些文件。接下来我只运行了python,看看它是否能找到“导入”它们

python 
>>> import cv2

不应该出现错误。

>>> import numpy

我听说 numpy 是 opencv 运行所必需的。从那里我相信你应该很好地运行你的脚本,如果没有错误发生的话。我希望这有帮助。

列出了对我有帮助的页面...

http://opencv-users.1802565.n2.nabble.com/I-can-t-find-cv-so-and-cv2-so-after-compiling-td6671937.html

于 2014-07-15T01:23:06.650 回答
3

当我在 OSX El Capitan 上使用 CMAKE 手动配置时,我遇到了类似的问题。我给了这个额外的选择:

PYTHON2_PACKAGES_PATH='lib/python2.7/site-packages'

这阻止了该软件包中的 cv2.so 安装。删除它后,它似乎可以正确安装在我的构建文件夹中:

PYTHON2_EXECUTABLE='/usr/bin/python2.7'
PYTHON2_INCLUDE_DIR='/usr/include/python2.7'
PYTHON2_LIBRARY='/usr/lib/libpython2.7.dylib' # TODO - Fix for linux
PYTHON2_NUMPY_INCLUDE_DIRS='/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include' # Todo - Fix for linux


cd $OPENCV_DIR

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$OPENCV_INSTALL_PATH \
                                  -D WITH_CUDA=OFF \
                                  -D BUILD_opencv_python2:BOOL=ON \
                                  -D PYTHON2_EXECUTABLE=$PYTHON2_EXECUTABLE \
                                  -D PYTHON2_INCLUDE_DIR=$PYTHON2_INCLUDE_DIR \
                                  -D PYTHON2_LIBRARY=$PYTHON2_LIBRARY \
                                  -D PYTHON2_NUMPY_INCLUDE_DIRS=$PYTHON2_NUMPY_INCLUDE_DIRS \
                                  -D INSTALL_PYTHON_EXAMPLES:BOOL=ON \
                                  ..
make -j8
make install
于 2016-02-03T19:49:43.320 回答
2

我的 OS X El Capitan 有这个问题。

我按照本教程中提到的说明进行操作。没有获得成功的工作安装,并且在提到的所需文件夹和python提示符处出现上述缺少 cv2.so 文件的错误。

最后发现使用虚拟python设置会造成麻烦。所以卸载了

pip install virtualenv virtualenvwrapper

然后跑了

brew link opencv

这引发了错误。

然后按照以下步骤解决问题。

首轮

brew link opencv

如果它给出错误,请尝试自动诊断

brew doctor

brew doctor列出了可能导致安装过程出错的问题。

要在文件冲突的情况下解决问题,请运行以获取通过覆盖执行的所有操作的列表,而无需实际执行它们。

列出所有将被删除的文件:

  brew link --overwrite --dry-run opencv

接下来是执行覆盖的运行,假设您觉得覆盖执行的操作将使您的系统进入更稳定的状态

要强制链接并覆盖所有冲突文件:

 brew link --overwrite opencv

本教程是一个更简单的选择。

于 2015-12-14T15:20:41.493 回答
2

以上都不适合我;我在 ec2 实例上的 Ubuntu 16.04 中安装了 anaconda,所以我只是使用

conda install opencv对于我的 conda2 和 3 安装

于 2017-06-21T20:50:49.583 回答
2

以上所有答案都对我不起作用,但是,经过一整天的努力,我终于解决了这个问题。

要拥有 cv2.so,我们需要:

  1. 至少安装了python 2 或 3。这就是为什么人们说:sudo apt-get install python-dev。但这不是必需的,就我而言,我使用anaconda python。(安装python的方法有很多)
  2. numpy也是必须的。所以,无论你使用什么 python,只要确保你已经下载了它。就我而言,我使用anaconda numpy。(anaconda 已经安装了,对于普通的 python,使用pip install numpy

告诉camke路径在哪里,以我的命令为例:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
      -D PYTHON2_EXECUTABLE='/home/parallels/anaconda2/bin/python' \
      -D PYTHON2_LIBRARY='/home/parallels/anaconda2/lib/python2.7' \
      -D PYTHON2_NUMPY_INCLUDE_DIRS='/home/parallels/anaconda2/lib/python2.7/site-packages/numpy/core/include' \
      -D BUILD_EXAMPLES=ON ..

对于python3,你应该(我正在使用anaconda python,所以我将所有内容都链接到anaconda):

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.3.1/modules \
      -D PYTHON3_EXECUTABLE='/home/test/SoftWare/anaconda3/bin/python3.6m' \
      -D PYTHON_INCLUDE_DIR='/home/test/SoftWare/anaconda3/include/python3.6m' \
      -D PYTHON3_LIBRARY='/home/test/SoftWare/anaconda3/lib/libpython3.6m.so' \
      -D PYTHON3_NUMPY_INCLUDE_DIRS='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages/numpy/core/include' \
      -D PYTHON3_PACKAGES_PATH='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages' ..

要记住的一件事!在你进入 cmake 之前... 1.清理你的构建文件夹,2. 只 camke 一次!否则你不能改变 ** PYTHON3_LIBRARY: NO**...(我认为这是一个错误)

我知道可能会有一些无用的争论,但我厌倦了试图清理它们。这是我的 cmake 打印信息的屏幕截图。 我的 cmake 信息的屏幕截图

可以清楚的看到,只有python2才能生成cv2.so。python3不行!(无法生成 Python3 包装器)。

于 2018-01-27T15:38:49.420 回答
0

我遇到了类似的问题。在深入研究之后,我遇到了一个帖子,其中提到需要python-numpy包。因此,我通过在构建文件夹(在您的情况下为发布文件夹)中运行以下命令来卸载 opencv:

dpkg -r build

然后我删除了所有的opencv文件。我安装python-numpypython-dev使用以下命令:

sudo apt-get install python-dev python-numpy

然后,重新运行安装脚本后,import cv2python 控制台中的命令没有给我任何错误并且正确导入。

于 2014-06-14T19:35:44.183 回答
0

就我而言,这是一个问题cmake

sudo apt install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt update

如果cmake尚未安装:

sudo apt install cmake

如果cmake已经安装:

sudo apt upgrade

有关详细信息,请参阅此链接

于 2016-07-30T19:47:33.617 回答