Сборка opencv из исходного кода означает, что, хотя он правильно установлен, пакет python opencv не зарегистрирован в pip и, следовательно, не может быть найден при запуске pip list
или pip show opencv-python
или, например,.Как я могу получить pip, чтобы «увидеть» мой локально собранный opencv?
В целях оптимизации мне пришлось собирать opencv из исходного кода, поэтому запуск pip install opencv-python opencv-contrib-python
здесь не вариант.Даже если import cv2
работает независимо от того, что именно, поскольку пакет вручную копируется в пакеты системного сайта с помощью cmake, проблема возникает, когда я собираю / разрабатываю локальные пакеты Python.Чтобы дать некоторый контекст, мой setup.py
выглядит так:
setup(...,
install_requires=[...,'opencv-python', 'opencv-contrib-python'],
...,
)
Итак, когда вы pip install -e .
, opencv-contrib
и opencv
не видны pip и установлены, перезаписывает мои изисходная сборка.Теперь я могу просто pip uninstall opencv-python opencv-contrib-python
, но мне действительно не нужно делать это каждый раз, особенно во время разработки, когда я мог запускать эту команду несколько раз.Мне нужен pip, чтобы «увидеть», что opencv-python
и opencv-contrib-python
уже существуют в моих системных системных пакетах по умолчанию, чтобы он не просто устанавливал их снова.
Для справки, я запускаю Arch 4.20,с cuda 10.0 на gtx1070 MaxQ, и вот моя команда cmake для сборки opencv:
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/opt/opencv \
-D CMAKE_EXE_LINKER_FLAGS=-lcblas \
-D OPENCV_EXTRA_MODULES_PATH=/home/*user*/builds/opencv/opencv_contrib-3.4/modules \
-D WITH_CUDA=ON \
-D WITH_CUBLAS=ON \
-D WITH_TBB=OFF \
-D WITH_V4L=ON \
-D WITH_GTK+=ON \
-D WITH_HDF5=ON \
-D WITH_XINE=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_OPENCL=ON \
-D WITH_FFMPEG=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_opencv_cudacodec=OFF \
-D CMAKE_CXX_COMPILER=/bin/g++-7 -L/opt/cuda/lib64/ -lcublas \
-D CUDA_NVCC_FLAGS=-ccbin g++-7 -L/opt/cuda/lib64/ -lcublas --expt-relaxed-constexpr -std=c++11 \
-D CUDA_HOST_COMPILER=/usr/bin/g++-7 \
-D CMAKE_CXX_FLAGS=-std=c++11 -L/opt/cuda/lib64/ -lcublas \
-D CUDA_NVCC_FLAGS=-D_FORCE_INLINES -std=c++11 --expt-relaxed-constexpr \
-D BUILD_opencv_java=OFF \
-D CUDA_GENERATION=Pascal \
-D WITH_OPENMP=ON \
-D BUILD_DOCS=OFF \
..