【问题标题】:Running OpenCV from a Python virtualenv从 Python virtualenv 运行 OpenCV
【发布时间】:2012-06-26 10:38:48
【问题描述】:

我正在尝试在我的 Ubuntu Server 12.04 上的 virtualenv 中安装 OpenCV。我找到了a thread discussing this,但没有从中提取任何信息。

我尝试使用pip install pyopencv,但失败了。

...
package/extras/core/ndarray.cpp:598:1:   instantiated from here

package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]

package/extras/core/ndarray.cpp: In function ‘boost::python::api::object sdcpp::from_ndarray_impl(const sdcpp::ndarray&) [with T = cv::Scalar_<double>]’:

package/extras/core/ndarray.cpp:601:1:   instantiated from here

package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]

package/extras/core/ndarray.cpp: In function ‘boost::python::api::object sdcpp::from_ndarray_impl(const sdcpp::ndarray&) [with T = cv::Range]’:

package/extras/core/ndarray.cpp:604:1:   instantiated from here

package/extras/core/ndarray.cpp:546:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Py_intptr_t {aka long int}’ [-Wformat]

error: command 'gcc' failed with exit status 1

此错误仅在我第二次运行pip install 时发生。如果我删除剩余的 build/ 文件夹,我会收到此错误。

-- Configuring incomplete, errors occurred!

Configuring PyOpenCV via CMake...

Error: error occurred while running CMake to configure PyOpenCV.

You may want to manually configure PyOpenCV by running cmake's tools:

    mkdir build

    cd build

    cmake-gui ..    OR    cmake ..

    cd ..

----------------------------------------
Command python setup.py egg_info failed with error code 255

我至少安装了以下 apt 包。

build-essential
uuid-dev
python-dev
python-pip
libpq-dev
cmake
libboost-dev
libcv-dev
libcvaux-dev
libboost-python-dev
libboost1.48-dev

如何在我的 virtualenv 中安装 OpenCV?

【问题讨论】:

  • 我遇到了同样的问题。不过,我注意到“pyopencv”对应于这个项目code.google.com/p/pyopencv,而不是opencv 2.X 附带的python 绑定

标签: python opencv virtualenv


【解决方案1】:

启动一个 virtualenv 并遵循本指南:http://www.samontab.com/web/2011/06/installing-opencv-2-2-in-ubuntu-11-04/,直到操作和复制 cv 共享对象。相反,我将 cv.so(从我的 OpenCV-2.2.0/lib 目录)复制到了我的 virtualenv 站点包(例如 env/lib/python2.7/site-packages/)。一旦 cv.so 在我的环境中,我就可以在 python 中导入 cv。

【讨论】:

【解决方案2】:

这是最简洁的方法,使用 pyenv 和 virtualenv 插件。

安装支持共享库的 Python(因此我们在 Mac OS X 上获得 libpython2.7.dylib 或在 Linux 上获得 libpython2.7.so)。

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -v 2.7.6

根据我们刚刚安装的python版本创建virtualenv。

pyenv virtualenv 2.7.6 myvirtualenv

激活虚拟环境。

pyenv shell myvirtualenv
pyenv rehash

安装 numpy.否则 opencv 将无法正确链接到 Python。

pip install numpy

设置python安装的前缀。

PREFIX_MAIN=`pyenv virtualenv-prefix`

设置环境的前缀。 (原文如此!这些 pyenv 命令的名称有点欺骗性!)

PREFIX=`pyenv prefix`

现在配置和安装opencv。请注意,opencv 二进制文件和包将安装在我们的 virtualenv 中,同时使用 Python 安装的动态库和包含。

cd openCV2.4
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX="$PREFIX" -DPYTHON_EXECUTABLE="$PREFIX"/bin/python2.7 -DPYTHON_LIBRARY="$PREFIX_MAIN"/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR="$PREFIX_MAIN"/include/python2.7 -DPYTHON_PACKAGES_PATH="$PREFIX"/lib/python2.7/site-packages/ ..
make install

(在 OSX 上,将 libpython2.7.so 替换为 libpython2.7.dylib。)

【讨论】:

    【解决方案3】:

    你已经apt-get build-dep python-opencv了吗?这将安装所有必需的依赖项以从源代码构建它;如果您尝试在虚拟环境中安装它,则需要它。

    【讨论】:

    • 我有所有这些 opencv.i386:计算机视觉算法集合 opencv-devel.i386:使用 OpenCV 库的开发文件 opencv-python.i386:我使用的使用 OpenCV 的应用程序的 Python 绑定Fedora ,错误是:“/include/c++/4.3.2/bits/stl_move.h:87: error: within this context” I using virtualenv.py .
    • @CatalinFestila 您应该打开另一个讨论,因为您的问题与这里所说的不同。
    猜你喜欢
    • 2012-03-24
    • 2012-10-30
    • 1970-01-01
    • 2017-06-28
    • 2011-06-04
    • 2021-07-15
    • 1970-01-01
    • 2019-02-27
    • 2020-04-25
    相关资源
    最近更新 更多