web-dev-qa-db-fra.com

Comment utiliser l'import Python avec dlib (en utilisant cmake et osx)

Désolé si ceci est basique mais j'essaie d'installer dlib pour l'utiliser avec python comme indiqué dans ( http://blog.dlib.net/2014/04/dlib-187-released-make-your-own-object .html ) "Fabrique ton propre détecteur d'objets en Python!".

J'ai téléchargé les fichiers d'installation, décompressés et utilisé cmake comme indiqué dans les instructions d'installation ( http://dlib.net/compile.html ).

cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release

qui semblait bien fonctionner

Cependant, taper "import dlib" en Python donne simplement ImportError: Aucun module nommé dlib.

Une idée de comment je dis à Python comment trouver/utiliser la chose?

9
Tim 333

Juste une note pour référence que le moyen le plus facile à installer est maintenant d'utiliser:

Sudo python setup.py install
8
liezlp

Instructions d'installation de Dlib pour OSX (python3)

brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python

Installation de dlib par défaut

pip3 install dlib

Suivant accélère quelque peu L'installation de dlib avec les instructions AVX, SSE2, SSE4 est activée (téléchargez le code source à partir de dlib.net et exécutez-le à partir du répertoire). 

python setup.py install --yes USE_AVX_INSTRUCTIONS --yes USE_SSE2_INSTRUCTIONS --yes USE_SSE4_INSTRUCTIONS
5
Ankur Jain

Au lieu de la modification manuelle des fichiers, vous pouvez passer -DPYTHON_LIBRARY:FILEPATH=/path/to/your/libpython2.7.dylib à cmake

Ce que ./compile_dlib_python_module.bat fait est 

mkdir build
cd build
cmake ../../tools/python

Donc, il suffit d’exécuter les commandes une à une et au lieu de 

cmake ../../tools/python

courir 

cmake ../../tools/python -DPYTHON_LIBRARY:FILEPATH=/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
5
Maciek Strömich

J'ai finalement réussi à le faire fonctionner! Je posterai un article de blog détaillé à ce sujet plus tard, mais voici l'essentiel pour le moment. En gros, lorsque j’ai inspecté manuellement la sortie de cmake, dlib compilait et liait la version système de Python not la version Homebrew de python.

Si les détails vous intéressent, il semble que cmake essaye de compiler et de créer un lien avec /usr/lib/libpython2.7.dylib. Cependant, c'est la version système de Python. Il devrait compiler une liaison avec /usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib qui est la version Homebrew de Python.

J'ai édité manuellement CMakeFiles/dlib_.dir/build.make et /CMakeFiles/dlib_.dir/link.txt pour qu'ils pointent vers le fichier Homebrew dylib au lieu du fichier système. J'ai été capable de compiler dlib puis de l'exécuter sans segfault. De plus, j'ai pu exécuter les détecteurs d'objet sans problème.

4
Adrian Rosebrock

Sur Ubuntu je devais faire ce qui suit:

Sudo apt-get install libboost-python-dev cmake

cd à dlib-18.15/python_examples

Ensuite:

./compile_dlib_python_module.bat 

J'ai ensuite copié le dlib.so dans dist-packages pour qu'il soit dans mon chemin.

Sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/

Selon la documentation, compile_dlib_python_module.bat fonctionnera sur tous les systèmes d'exploitation une fois que vous aurez installé CMake et boost-python

4

Vous compilez les exemples de programmes C++. Les exemples python se trouvent dans le dossier python_examples. En outre, chaque exemple comporte des instructions en haut qui vous expliquent comment l'utiliser.

1
Davis King

Si vous utilisez Conda, c'est beaucoup plus facile.

conda install -c menpo dlib

https://anaconda.org/menpo/dlib

1
mesutpiskin

pour l'utilisation du support Python 3:

python setup.py install --yes DPYTHON3
0
Bogdan

Si vous avez déjà compilé dlib le code source à partir de github par la commande cmake ..__, vous devez exécuter un programme python pour appeler dlib api.

Vous devriez compiler l'API Python dlib comme ci-dessous,

Sudo python setup.py install

Ou

Sudo python setup.py install --yes USE_AVX_INSTRUCTIONS

si vous avez un processeur qui prend en charge les instructions AVX, cela accélère certaines choses. Notez que vous devez avoir installé boost-python pour compiler l'API Python. (Lié depuis dlib README.md)

Ça marche pour moi.

0
Luna Kong

J'ai rencontré la même erreur avec vous.

Lorsque j'ai consulté le dossier "C:\Anaconda3\Lib\site-packages", j'ai trouvé "dlib-19.8.0-py3.4-win-AMD64.Egg\", cela signifie que j'ai compilé dlib avec succès, mais il n'y a pas de dossier "dlib\" sous le "C:\Anaconda3\Lib\site-packages", il se trouve dans le dossier "dlib-19.8.0-py3.4-win-AMD64.Egg\". La solution est donc simple: copiez simplement le dossier "dlib\" dans le chemin "C:\Anaconda3\Lib\site-packages" , l’interprète Python trouvera le module et l’importera avec succès.

J'espère que ça va aider! 

 enter image description here

0
Moon Zoe