osx El Capitan
Je veux exécuter la série OpenCV3 et je veux utiliser un nouveau python. Cependant, il y a beaucoup de choses écrites pour la série OpenCV2, je veux donc pouvoir également exécuter la série OpenCV2. La série OpenCV2 semble fonctionner uniquement avec la série python2, je veux donc permettre d'exécuter plusieurs environnements. J'ai donc décidé d'installer pyenv et de modifier l'environnement à partir de là.
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
# python3.5.Installer 1
$ pyenv install 3.5.1
Introduit à partir de la bière.
# brew install opencv3 --with-J'ai essayé de frapper python3, mais opencv3 est homebrewed/science/On me dit de passer à opencv3
$ brew install homebrew/science/opencv3 --with-python3
J'ai mis la commande ci-dessus à partir de brew, mais cela ne fonctionne pas avec l'erreur suivante.
/tmp/opencv3-20161123-64293-17bmzya/opencv-3.1.0/modules/videoio/src/cap_qtkit.mm:46:9: fatal error: 'QTKit/QTKit.h' file not found
#import <QTKit/QTKit.h>
http://qiita.com/masaori/items/0c78fcd58a6c6bf4f655 Ce lien indique que cela s'est produit dans OS X Sierra, mais cela s'est également produit à El Capitan. La solution est la même pour le moment, obtenez-en une nouvelle en spécifiant HEAD dans l'option d'infusion. Obtenir le HEAD peut avoir mélangé d'autres commits, mais à ce stade, il n'y a pas d'inconvénient particulier.
$ brew install homebrew/science/opencv3 --with-python3 --HEAD
Créez un lien symbolique pour lire le fichier OpenCV so via pyenv
$ ln -s /usr/local/Cellar/opencv3/HEAD-b8c875d_4/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so ~/.pyenv/versions/3.5.1/lib/python3.5/site-packages
Vérifiez s'il peut être lu correctement à partir de REPL ci-dessous
$ python
Python 3.5.1 (default, Nov 7 2016, 22:30:16)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
À un moment donné, le module python2.7 a été chargé. Par conséquent, quand OpenCV est construit avec brew, le fichier so est placé dans / usr / local / opt / opencv3 / lib / python2.7 / site-packages /
, et même dans le fichier, il est construit sur le principe de python2.7. Pour cette raison, même si j'ai mis en place un lien symbolique, j'ai eu l'erreur suivante et je n'ai pas pu le lire avec python.
$ python
Python 3.5.1 (default, Nov 7 2016, 22:30:16)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so, 2): Symbol not found: _PyCObject_Type
Referenced from: /usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so
Expected in: flat namespace
in /usr/local/opt/opencv3/lib/python2.7/site-packages/cv2.so
>>>
Résolvez le problème de chargement du module à partir d'ici http://qiita.com/Asakage/items/690ce9048e708de41166
Si vous commentez la ligne dans ~ / .local / lib / python3.5 / site-packages / homebrew.pth
, python3.5 sera chargé correctement. On ne sait pas quand ce chemin a été lu. J'ai mis en place pyvenv et j'ai fait des choses qui n'étaient pas écrites ici, donc c'est peut-être arrivé à ce moment-là.
La construction a pris beaucoup de temps et divers problèmes sont survenus, il peut donc être le plus rapide d'installer OpenCV à l'aide de conda.
Recommended Posts