【问题标题】:Compiling OpenCV inside a conda virtual environment在 conda 虚拟环境中编译 OpenCV
【发布时间】:2015-09-19 20:11:11
【问题描述】:

我正在尝试在使用conda 创建的虚拟环境中安装 OpenCV 3.0.0。

我已经下载了 OpenCV 3.0.0 的 zip 文件,将其解压缩,并在解压缩的目录中创建了一个名为 build 的空目录。在构建内部,我正在尝试运行

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") \
-D PYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print get_python_inc()") \
-D PYTHON_EXECUTABLE=$(which python) \
-D PYTHON_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") ..

除了上面描述的cmake 命令的其他几种变体,我得到了dyld library not loaded error

在我的conda 虚拟环境中安装 OpenCV 的正确 cmake command 是什么?

【问题讨论】:

  • 您没有将源目录传递给cmake。并且,可能会错误地传递变量。尝试获取 CMAKE_INSTALL_PREFIX 硬编码值,而不是脚本的结果。
  • 您缺少指向 python dylib 的标志 -DPYTHON_LIBRARY(请参阅下面的答案)

标签: python-2.7 cmake osx-yosemite opencv3.0 conda


【解决方案1】:

这是我在 OS X 上构建 opencv 3.0 所遵循的步骤:

# From opencv root:
mkdir build
cd build
PYTHON_VERS=python$(python -c "import sys; print '%s.%s' % (sys.version_info.major, sys.version_info.minor)")
PYTHON_ROOT=$(python -c "import sys; print sys.prefix")

cmake -DPYTHON_INCLUDE_DIR=$PYTHON_ROOT/include/$PYTHON_VERS/ -DPYTHON_LIBRARY=$PYTHON_ROOT/lib/lib${PYTHON_VERS}.dylib -DPYTHON_EXECUTABLE=$PYTHON_ROOT/bin/python -DPYTHON_PACKAGES_PATH=$PYTHON_ROOT/lib/$PYTHON_VERS/site-packages/ ..
make
sudo make install | grep cv2.so
cp /usr/local/lib/$PYTHON_VERS/site-packages/cv2.so $PYTHON_ROOT/lib/$PYTHON_VERS/site-packages/cv2.so # or wherever it installs it...

(由于某种原因,它最终仍会在 /usr/local/lib 版本的 python 中构建 python 绑定 .so,所以我不得不将其复制过来,但可能还有一个额外的标志可以用来防止这种情况发生)

【讨论】:

  • 如果我用 anaconda 安装了 python,这会起作用吗?
  • 没试过,但理论上应该。我使用 Python-2.7 的 macports 构建(之前安装了 numpy 和 scipy pip)
  • 好的,您能否详细说明失败的位置和错误是什么?它是否成功构建但没有 python 绑定?
猜你喜欢
  • 1970-01-01
  • 2018-06-18
  • 1970-01-01
  • 2022-01-11
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2021-05-16
相关资源
最近更新 更多