2 votes

Erreur lors de l'installation de dlib

J'ai suivi ce tutoriel pour installer dlib mais quand je lance pip install dlib Je reçois

Collecte de dlib

Utilisation du cache de dlib-19.4.0.tar.gz Construction des roues pour les paquets collectés : dlib

Exécution de setup.py bdist_wheel pour dlib ... erreur

Sortie complète de la commande /home/leo/.virtualenvs/py3_dlib_tutorial/bin/python3 -u -c "import setuptools, tokenize ; fichier \='/tmp/pip-build-4luevi_i/dlib/setup.py';f=getattr(tokenize, 'open', open)( fichier );code=f.read().replace(' \r\n ', ' \n ');f.close();exec(compile(code, fichier , 'exec'))" bdist_wheel -d /tmp/tmpv2rhc6cbpip-wheel- --python-tag cp36 :

exécution de bdist_wheel

construction en cours

Architecture Python détectée : 64bit

Plate-forme détectée : linux

Configuration de cmake ...

/usr/bin/cmake : /home/leo/anaconda3/lib/libcurl.so.4 : aucune information de version disponible (requise par /usr/bin/cmake)

/usr/bin/cmake : /home/leo/anaconda3/lib/libstdc++.so.6 : version `CXXABI_1.3.9' non trouvée (requise par /usr/bin/cmake)

/usr/bin/cmake : /home/leo/anaconda3/lib/libstdc++.so.6 : version `GLIBCXX_3.4.20' non trouvée (requise par /usr/bin/cmake)

/usr/bin/cmake : /home/leo/anaconda3/lib/libstdc++.so.6 : version `GLIBCXX_3.4.21' non trouvée (requise par /usr/bin/cmake)

/usr/bin/cmake : /home/leo/anaconda3/lib/libstdc++.so.6 : version `GLIBCXX_3.4.21' non trouvée (requise par /usr/lib/x86_64-linux-gnu/libjsoncpp.so.1)

erreur : la configuration de cmake a échoué !

Avez-vous des suggestions pour réparer cela ?

Mise à jour

J'utilise ubuntu 16.04

J'ai aussi remarqué que lorsque j'exécute sudo pip install dlib cela fonctionne mais ensuite j'obtiens

 (py3_dlib_tutorial) ~$ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dlib'

Mise à jour

Il semble qu'un correctif antérieur à celui-ci ait causé l'erreur.

J'ai désactivé cette ligne dans mon .bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/leo/anaconda3/lib

qui était nécessaire pour faire mkvirtualenv travail. Maintenant pip install dlib a fonctionné mais je reçois toujours une erreur similaire

python
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/leo/anaconda3/lib/python3.6/site-packages/dlib/__init__.py", line 1, in <module>
    from .dlib import *
ImportError: /home/leo/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.58.0)

1voto

Abhishek Saxena Points 56

Pour résoudre cette erreur :

python
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/leo/anaconda3/lib/python3.6/site-packages/dlib/__init__.py", line 1, in <module>
from .dlib import *
ImportError: /home/leo/anaconda3/bin/../lib/libstdc++.so.6: version     `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-
gnu/libboost_python-py35.so.1.58.0)

Vous devez passer de Python 3.6 à Python 3.5. Si vous utilisez anaconda, vous pouvez le faire en créant un nouvel environnement :

conda create -env_name python=3.5 anaconda
activate env_name
conda install -c menpo dlib 

Cela devrait fonctionner et vous aurez votre dlib qui fonctionnera bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X