sierra - No se puede instalar OpenCV3 en Anaconda3 python3.6 en macOS
install opencv mac python (5)
Actualización: ¡Conda tiene un paquete OpenCV pre-construido para Python 3.6 ahora!
La solución directa sería hacer lo siguiente en la instalación base.
conda install -c menpo opencv3
Anteriormente, los paquetes se creaban en Python 3.5, por lo que solía resolver este problema con la alternativa de @ VivekPatani .
Actualmente, el repositorio de Conda Menpo tiene una versión pre-construida de OpenCV para la versión Python 3.6. Por lo tanto, no sería necesario cambiar a 3.5 o construir OpenCV desde la fuente.
Estoy intentando instalar OpenCV 3.2.0 en Anaconda3 python 3.6 en macOS 10.11.6 pero no puedo encontrar una manera. Mi Anaconda3 tiene Python 3.5.2 instalado, pero si creo un nuevo entorno virtual usando
$ conda create -n myvenv python
then it downloads and installs python 3.6 on the new myvenv. A simple search
$ conda search opencv
opencv 2.4.8 np17py27_2 defaults
mientras que opencv3 no produce resultados
$ conda search opencv3
NoPackagesFoundError: Package missing in current osx-64 channels:
- opencv3
Instalar menpo opencv3 build da el siguiente conflicto:
$ conda install -c menpo opencv3
Fetching package metadata ...........
Solving package specifications: .
UnsatisfiableError: The following specifications were found to be in conflict:
- opencv3 -> python 2.7* -> openssl 1.0.1*
- python 3.6*
Use "conda info <package>" to see the dependencies for each package.
Intenté instalar usando homebrew pero vincularlo con Anaconda3 python3 parece difícil:
$ brew install eigen tbb
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/eigen-3.3.1.el_capitan.bottle.tar.gz
100.0%
==> Pouring eigen-3.3.1.el_capitan.bottle.tar.gz
🍺 /usr/local/Cellar/eigen/3.3.1: 486 files, 6.4M
==> Downloading https://homebrew.bintray.com/bottles/tbb-4.4-20161128.el_capitan.bottle.tar.gz
100.0%
==> Pouring tbb-4.4-20161128.el_capitan.bottle.tar.gz
==> Caveats
Python modules have been installed and Homebrew''s site-packages is not
in your Python sys.path, so you will not be able to import the modules
this formula installed. If you plan to develop with these modules,
please run:
mkdir -p /Users/<username>/.local/lib/python3.5/site-packages
echo ''import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")'' >> /Users/<username>/.local/lib/python3.5/site-packages/homebrew.pth
==> Summary
🍺 /usr/local/Cellar/tbb/4.4-20161128: 119 files, 1.9M
Más información
$ conda info
Current conda install:
platform : osx-64
conda version : 4.3.8
conda is private : False
conda-env version : 4.3.8
conda-build version : 2.0.2
python version : 3.5.2.final.0
requests version : 2.12.4
root environment : /Users/<username>/anaconda3 (writable)
default environment : /Users/<username>/anaconda3/envs/lesvenv
envs directories : /Users/<username>/anaconda3/envs
package cache : /Users/<username>/anaconda3/pkgs
channel URLs : https://repo.continuum.io/pkgs/free/osx-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/r/osx-64
https://repo.continuum.io/pkgs/r/noarch
https://repo.continuum.io/pkgs/pro/osx-64
https://repo.continuum.io/pkgs/pro/noarch
config file : None
offline mode : False
user-agent : conda/4.3.8 requests/2.12.4 CPython/3.5.2 Darwin/15.6.0 OSX/10.11.6
UID:GID : 502:20
mientras que la lista de coda es:
$ conda list
packages in environment at /Users/<username>/anaconda3/envs/lesvenv:
anaconda-client 1.6.0 py36_0
clyent 1.2.2 py36_0
mkl 2017.0.1 0
numpy 1.11.3 py36_0
openssl 1.0.2j 0
pip 9.0.1 py36_1
python 3.6.0 0
python-dateutil 2.6.0 py36_0
pytz 2016.10 py36_0
pyyaml 3.12 py36_0
readline 6.2 2
requests 2.12.4 py36_0
setuptools 27.2.0 py36_0
six 1.10.0 py36_0
sqlite 3.13.0 0
tk 8.5.18 0
wheel 0.29.0 py36_0
xz 5.2.2 1
yaml 0.1.6 0
zlib 1.2.8 3
Mi anaconda es: /Users/<username>/anaconda3/bin/anaconda
Mi python 3.5.2 es: /Users/<username>/anaconda3/bin/python
Mi conda myvenv python 3.6 es: /Users/<username>/anaconda3/envs/myvenv/bin/python
Debido a que está utilizando una versión más reciente de python3, probablemente tendría que compilarlo a partir de la receta, que está disponible en https://github.com/conda-forge/opencv-feedstock
Otra opción es tener la versión específica de python3 en su nuevo entorno al crearla de esta manera:
(root) osx:Downloads nwani$ conda list | grep python
python 3.6.0 0
(root) osx:Downloads nwani$ conda create -yn opencvtest python=3.5.2
(root) osx:Downloads nwani$ source activate opencvtest
(opencvtest) osx:Downloads nwani$ conda list | grep python
python 3.5.2 0
Las versiones 3.1.0 de opencv están disponibles en el canal conda-forge
:
(root) osx:Downloads nwani$ conda search -c conda-forge --spec ''opencv=3*''
Fetching package metadata .........
opencv 3.1.0 np110py27_0 conda-forge
3.1.0 np110py34_0 conda-forge
3.1.0 np110py35_0 conda-forge
3.1.0 np111py27_0 conda-forge
3.1.0 np111py34_0 conda-forge
3.1.0 np111py35_0 conda-forge
3.1.0 np110py27_1 conda-forge
3.1.0 np110py34_1 conda-forge
3.1.0 np110py35_1 conda-forge
3.1.0 np111py27_1 conda-forge
3.1.0 np111py34_1 conda-forge
3.1.0 np111py35_1 conda-forge
Puedes instalarlo así:
(opencvtest) osx:Downloads nwani$ conda install -y -c conda-forge opencv
(opencvtest) osx:Downloads nwani$ conda list | grep -e python -e opencv
# packages in environment at /Users/nwani/Downloads/m3/envs/opencvtest:
opencv 3.1.0 np111py35_1 conda-forge
python 3.5.2 0
Descubrí que la solución aceptada no funciona en Python 3.6 con anaconda.
Entonces, para instalar opencv manualmente y aún así funciona con conda:
$ cd ~
$ git clone https://github.com/opencv/opencv
$ git clone https://github.com/opencv/opencv_contrib
$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE /
-D PYTHON3_LIBRARY=/Users/yourusername/anaconda3/lib/libpython3.6m.dylib /
-D PYTHON3_INCLUDE_DIR=/Users/yourusername/anaconda3/include/python3.6m /
-D PYTHON_DEFAULT_EXECUTABLE=/Users/yourusername/anaconda3/bin/python3 /
-D PYTHON_PACKAGES_PATH=/Users/yourusername/anaconda3/lib/python3.6/site-packages /
-D INSTALL_C_EXAMPLES=OFF /
-D INSTALL_PYTHON_EXAMPLES=ON /
-D BUILD_EXAMPLES=ON /
-D BUILD_opencv_python3=ON /
-D BUILD_opencv_python2=OFF /
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
$ make -j4
$ make install
En este punto la instalación debería haberse realizado sin problemas. Sin embargo, si vas a la terminal todavía obtendrás:
$ python
import cv2
ImportError: No module named cv2
Así que ahora renombra este archivo
$ cd ~/opencv/lib/python3.6/site-packages
$ mv cv2.cpython-36m-darwin.so cv2.so
y copiarlo a esta ubicación
$ cp cv2.so /Users/yourusername/anaconda3/lib/python3.6/site-packages
y ahora debería funcionar.
$ python
import cv2
cv2.__version__
''3.2.0-dev''
Instalé anaconda3 en Win10, y tuve el mismo error cuando estaba instalando opencv3 con conda: conda install -c menpo opencv3
Busqué un rato, vi esta pregunta y otra similar en los grupos de Google aquí . De alguna manera, logré instalar opencv3 en un env virtual de python35, que podría funcionar también en Mac OS.
conda create --name python35 python=3.5
activate python35
conda install -c menpo opencv3
Después, reinicie el navegador Anaconda3 y elija el entorno python35.
Tener una prueba en Spyder:
import cv2
print(cv2.__version__)
3.1.0
Esta respuesta ahora está desactualizada (a menos que, por alguna razón, haya querido utilizar una versión anterior de OpenCV). Consulte esta respuesta.
La respuesta correcta anterior no funcionó para mí.
Terminé bajando la versión de python hasta que se solucione.
conda install python=3.5 conda install -c menpo opencv3
Sé que esto no es una solución permanente, pero esto funciona para mí y puedes permanecer en el entorno de Conda sin hacer mucho.
Actualmente se hace referencia al problema aquí: https://github.com/conda/conda/issues/2448
¡Espero que esto ayude!