wake-up-neo.net

OpenCV3 kann nicht auf Anaconda3 Python3.6 unter MacOS installiert werden

Ich versuche, OpenCV 3.2.0 auf Anaconda3 Python 3.6 auf MacOS 10.11.6 zu installieren, aber ich kann keinen Weg finden ... Meine Anaconda3 hat Python 3.5.2 installiert, aber wenn ich eine neue virtuelle Umgebung mit 

$ 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 

während opencv3 keine Ergebnisse liefert 

$ conda search opencv3
NoPackagesFoundError: Package missing in current osx-64 channels: 
  - opencv3

Die Installation von Menpo Opencv3 Build führt zu folgendem Konflikt: 

$ 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.

Ich habe versucht, Homebrew zu installieren, aber die Verknüpfung mit Anaconda3 Python3 scheint schwierig zu sein: 

$ 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

Mehr Info 

$ 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

während Coda-Liste ist: 

$ 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

Meine Anakonda ist: /Users/<username>/anaconda3/bin/anaconda
Mein Python 3.5.2 ist: /Users/<username>/anaconda3/bin/python
Mein Conda myvenv Python 3.6 lautet: /Users/<username>/anaconda3/envs/myvenv/bin/python

17
Shah Ismail

Da Sie eine neuere Version von Python3 verwenden, müssen Sie opencv wahrscheinlich aus dem Rezept selbst erstellen, das unter https://github.com/conda-forge/opencv-feedstock verfügbar ist.

Eine weitere Option besteht darin, die spezifische Version von python3 in Ihrer neuen Umgebung zu haben, indem Sie sie wie folgt erstellen:

(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

Die Builds der Version 3.1.0 von opencv sind auf dem conda-forge-Kanal verfügbar:

(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

Sie können es so installieren:

(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  
15
Nehal J Wani

Diese Antwort ist nicht mehr aktuell (es sei denn, Sie wollten eine ältere Version von OpenCV verwenden) - siehe diese Antwort

Die obige richtige Antwort hat bei mir nicht funktioniert.

Die Version von Python wurde heruntergefahren, bis dies behoben ist.

conda install python=3.5 conda install -c menpo opencv3

Ich weiß, dass dies keine dauerhafte Lösung ist, aber dies funktioniert für mich und Sie können in der Conda-Umgebung bleiben, ohne viel zu tun.

Auf das Problem wird derzeit hier Bezug genommen: https://github.com/conda/conda/issues/2448

Hoffe das hilft!

22
Viv

Ich habe festgestellt, dass die akzeptierte Lösung auf Python 3.6 mit Anaconda nicht funktioniert. 

Um opencv manuell zu installieren und trotzdem mit conda arbeiten zu lassen:

$ 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

Zu diesem Zeitpunkt sollte die Installation reibungslos verlaufen sein. Wenn Sie jedoch zum Terminal gehen, erhalten Sie immer noch:

$ python
import cv2
ImportError: No module named cv2

Benennen Sie diese Datei jetzt um

$ cd ~/opencv/lib/python3.6/site-packages
$ mv cv2.cpython-36m-darwin.so cv2.so

und kopiere es an diesen Ort

$ cp cv2.so /Users/yourusername/anaconda3/lib/python3.6/site-packages

und jetzt sollte es funktionieren. 

$ python
import cv2
cv2.__version__
'3.2.0-dev'
6
Sean L

Ich habe anaconda3 unter Win10 installiert und hatte den gleichen Fehler, als ich opencv3 mit Conda installierte: conda install -c menpo opencv3

Eine Weile suchte ich diese Frage und eine andere ähnliche auf google groups hier . Irgendwie gelang es mir, opencv3 in einer virtuellen Umgebung von python35 zu installieren, die möglicherweise auch unter Mac OS funktioniert. 

conda create --name python35 python=3.5
activate python35
conda install -c menpo opencv3

Starten Sie anschließend den Anaconda3 Navigator erneut und wählen Sie die python35-Umgebung aus. 

Habe einen Test in Spyder:

import cv2
print(cv2.__version__)
3.1.0
4
Yuk

Update: Conda hat jetzt ein vorgefertigtes OpenCV-Paket für Python 3.6!

Die direkte Lösung wäre, bei der Basisinstallation Folgendes zu tun

conda install -c menpo opencv3

Zuvor waren die Pakete auf Python 3.5 aufgebaut, also habe ich dieses Problem mit @ VivekPatanis Alternative gelöst.

Derzeit verfügt das Repository von conda menpo über eine vorgefertigte Version von OpenCV für die Python 3.6-Version. Daher ist ein Downgrade auf 3.5 oder das Erstellen von OpenCV von der Quelle aus nicht erforderlich. 

1
Ébe Isaac