2017-01-26 32 views
15

Próbuję zainstalować OpenCV 3.2.0 na pytku Anaconda3 3.6 na macOS 10.11.6, ale nie mogę znaleźć sposobu. Moja Anaconda3 ma python 3.5.2 zainstalowany, ale jeśli utworzyć nowe środowisko wirtualne za pomocąNie mogę zainstalować OpenCV3 na Anaconda3 python3.6 na macOS

$ 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 

podczas opencv3 daje żadnych wyników

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

Instalowanie menpo opencv3 build daje następujący 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. 

Próbowałem zainstalować przy użyciu homebrew, ale połączenie z Anaconda3 python3 wydaje się trudne:

$ 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 

Więcej informacji

$ 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 

natomiast lista coda jest:

$ 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 

Moja anakonda jest: /Users/<username>/anaconda3/bin/anaconda
Moja Python 3.5.2 jest: /Users/<username>/anaconda3/bin/python
Moja Conda myvenv Python 3.6 jest: /Users/<username>/anaconda3/envs/myvenv/bin/python

Odpowiedz

12

Ponieważ używasz nowszej wersji python3, prawdopodobnie będziesz musiał samodzielnie zbudować opencv z przepisu, który jest dostępny pod adresem https://github.com/conda-forge/opencv-feedstock

Inną opcją jest posiadanie konkretnej wersji python3 w nowym środowisku poprzez utworzenie jej jak to:

(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 

wersja 3.1.0 buduje OpenCV są dostępne na conda-forge channel:

(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 

można go zainstalować tak:

(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 
+0

Dzięki, udało mi się zainstalować zarówno menpo, jak i conda-forge opencv3 w dwóch oddzielnych środowiskach. –

+0

pracował w systemie Windows 10 – amorenew

4

Znalazłem, że przyjęte rozwiązanie nie działa na python 3.6 z anakondą.

Więc zainstalować OpenCV ręcznie i nadal pracować z 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 

W tym momencie zainstalowania powinno pójść gładko. Jednak jeśli pójdziesz do terminalu będzie wciąż:

$ python 
import cv2 
ImportError: No module named cv2 

Więc teraz zmienić nazwę tego pliku

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

i skopiuj go do tego miejsca

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

i teraz to powinno działać.

$ python 
import cv2 
cv2.__version__ 
'3.2.0-dev' 
+0

Jak dodać go do listy pakietów conda, ponieważ po ich zaktualizowaniu, chciałbyś go aktualizować. –

+0

Aby wyjaśnić, jest to tymczasowa poprawka dla tych, które wymagają Pythona 3.6. Aby zaktualizować, należy powtórzyć powyższe kroki po pobraniu odpowiednich zmian git. –

3

zainstalowałem anaconda3 na Win10 i miałem ten sam błąd, kiedy została instalacji opencv3 z Conda: conda install -c menpo opencv3

Szukano chwilę widziałem to pytanie i inny podobny jeden na google groups here. Jakoś udało mi się zainstalować opencv3 w wirtualnym środowisku wirtualnym python35, które może działać również w systemie Mac OS.

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

Następnie uruchom ponownie Anaconda3 Navigator i wybierz środowisko python35.

Czy test w Spyder:

import cv2 
print(cv2.__version__) 
3.1.0 
19

Powyższy poprawna odpowiedź nie dla mnie.

Skończyło się obniżanie wersji Pythona, dopóki to nie zostanie naprawione.

conda install python=3.5 conda install -c menpo opencv3

wiem, że to nie jest stały dylemat, ale to działa na mnie i dostać się do pobytu w środowisku Conda nie robiąc dużo.

Kwestia ta jest obecnie określany tutaj: https://github.com/conda/conda/issues/2448

Nadzieja to pomaga!