【问题标题】:What are library and include directory variables for .so files?.so 文件的库和包含目录变量是什么?
【发布时间】:2019-04-01 13:55:55
【问题描述】:

我有一个关于 opencv 的基本问题。我正在使用 conda 环境并使用 conda 命令安装了 opencv 3。我可以在 /anaconda2/envs/MyPy2.7TF/lib/python2.7/site-packages 中看到 cv2.so。现在,我正在尝试使用来自 https://bitbucket.org/amitibo/pyfacetracker 的 pyFaceTracker。有一个名为 setup.py 的文件需要我修改“OPENCV_BASE”、“OPENCV_LIB_DIRS”、“OPENCV_INCLUDE_DIRS”等。我只能看到 .so 文件。我应该为这些变量赋予什么价值?

【问题讨论】:

  • 您不需要修改setup.py 中的任何内容。您只需要按照docs 执行python setup.py
  • 文档说“您首先需要更新 setup.py 以指向 OpenCV 的安装(即将 OPENCV_BASE、OPENCV_LIB_DIRS 和 OPENCV_VERSION 全局变量设置为正确的值)。”

标签: python opencv


【解决方案1】:

您可以从 python shell 中获取 'OPENCV_BASE'、'OPENCV_LIB_DIRS'、'OPENCV_INCLUDE_DIRS' 的路径。 只需激活 conda 环境,启动 python shell 并使用以下代码:

import cv2
print(cv2.getBuildInformation())

这段代码会打印出opencv的安装细节,在这里你可以得到这个所需变量的路径。

【讨论】:

  • 感谢这个功能。我会试试这个。
【解决方案2】:

如果你在anaconda中寻找opencv的安装路径,可以使用CONDA_PREFIX环境变量:

import os

conda_dir = os.environ.get("CONDA_PREFIX")
# Build your path
opencv_install = os.path.join(conda_dir, 'lib', 'python2.7', 'site-packages', 'cv2')

我不完全确定 lib_dirs 是什么,但您可以使用 __version__ 属性获取任何包的版本:

import cv2

cv2.__version__
# '4.0.0'

【讨论】:

  • 您好,感谢您抽出宝贵时间回答我的问题。但是,我没有“opencv_install”(“/home/vandana/anaconda2/envs/MyPy2.7TF/lib/python2.7/site-packages/cv2”)给出的文件夹。我只有到'site_packages',之后我有一个cv2.so 文件。所以,我的问题是 - 只有这个 .so 静态库文件,我应该如何提供 setup.py 所需的路径名?
  • 这需要不同的opencv 安装吗?阅读他们的文档,看起来您可能需要在 Ubuntu 上使用 apt 或在 mac 上使用 brew 之类的东西安装 opencv,该库指向
  • 首先我想尝试使用我现有的 anaconda-opencv 而不进行任何其他 opencv 安装。我想那里有点懒:P
  • 我尝试使用brew install opencv,它可能会被认为是无穷无尽的依赖,所以我不怪你
  • @VandanaRajan 我肯定会说,任何需要您编辑 setup.py 的库的质量都值得怀疑,至少从使用/扩展代码的最佳实践的角度来看是这样
猜你喜欢
  • 1970-01-01
  • 2010-11-10
  • 2012-04-06
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2015-01-31
相关资源
最近更新 更多