Что такое переменные library и include directory для файлов .so?

#python #opencv

#python #opencv

Вопрос:

У меня есть основной вопрос об opencv. Я использую среду conda и установил opencv 3 с помощью команды conda. Я вижу cv2.so в /anaconda2/envs/MyPy2.7TF/lib/python2.7/site-packages. Теперь я пытаюсь использовать pyFaceTracker из https://bitbucket.org/amitibo/pyfacetracker . Существует файл под названием setup.py для этого мне нужно изменить ‘OPENCV_BASE’, ‘OPENCV_LIB_DIRS’, ‘OPENCV_INCLUDE_DIRS’ и т.д. Я вижу только файл .so. Какое значение я должен присвоить этим переменным?

Комментарии:

1. Вам не нужно ничего изменять в setup.py . Вам нужно будет делать только python setup.py согласно документам

2. В документе говорится: «Сначала вам нужно обновить setup.py чтобы указать на установку OpenCV (т. Е. присвоить глобальным переменным OPENCV_BASE, OPENCV_LIB_DIRS и OPENCV_VERSION их правильные значения).»

Ответ №1:

Вы можете получить путь к ‘OPENCV_BASE’, ‘OPENCV_LIB_DIRS’, ‘OPENCV_INCLUDE_DIRS’ из оболочки python. Просто активируйте среду conda, запустите оболочку python и просто используйте приведенный ниже код:

 import cv2
print(cv2.getBuildInformation())
  

Этот код распечатает детали установки opencv, и здесь вы можете получить путь к этим необходимым переменным.

Комментарии:

1. Спасибо за эту функцию. Я попробую это.

Ответ №2:

Если вы ищете путь установки opencv в anaconda, вы можете использовать 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'
  

Комментарии:

1. Привет, спасибо, что нашли время ответить на мой вопрос. Однако у меня нет папки, указанной в ‘opencv_install’ (‘/home/vandana /anaconda2/envs/MyPy2.7TF /lib/ python2.7/site-packages /cv2’). У меня просто есть ‘site_packages’, после чего у меня есть cv2.so файл. Итак, мой вопрос — только с этим . итак, статический файл библиотеки, как я должен указать имена путей, как того требует setup.py ?

2. Требуется ли для этого другая установка opencv ? читая их документы, похоже, вам может потребоваться установить opencv, используя что-то вроде apt на Ubuntu или brew на Mac, на которые указывает эта библиотека

3. Сначала я хочу попробовать использовать мою существующую anaconda-opencv без выполнения какой-либо другой установки opencv. Я думаю, что я немного ленив там: P

4. Я попытался использовать brew install opencv и у него есть то, что можно было бы считать бесконечными зависимостями, поэтому я не виню вас в этом

5. @VandanaRajan Я определенно скажу, что любая библиотека, требующая вашего редактирования setup.py , сомнительного качества, по крайней мере, с точки зрения наилучших практик использования / расширения кода