54 votes

"erreur fatale : openssl/opensslv.h : Aucun fichier ou dossier de ce type" en compilant mitmproxy

Je cherche à installer le paquet mitmproxy via pip de cette manière :

$ sudo pip install mitmproxy

Il se termine par le message d'erreur suivant :

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o

build/temp.linux-x86_64-2.7/_openssl.c:391:30: fatal error: openssl/opensslv.h: Aucun fichier ou dossier de ce type

compilation terminée.

error: le command 'x86_64-linux-gnu-gcc' a échoué avec le code de sortie 1

----------------------------------------
  Can't roll back cryptography; was not uninstalled
Nettoyage...
Commande /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-jvLTVf/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-DrY4DI-record/install-record.txt --single-version-externally-managed --compile a échoué avec le code d'erreur 1 in /tmp/pip-build-jvLTVf/cryptography
Enregistrement du journal de débogage pour l'échec dans /home/niklas/.pip/pip.log

Après cela, il est en quelque sorte installé, au moins je peux le désinstaller par la suite.

 $ mitmproxy

mène à

Traceback (most recent call last):
  File "/usr/local/bin/mitmproxy", line 7, in 
    from mitmproxy.main import mitmproxy
  File "/usr/local/lib/python2.7/dist-packages/mitmproxy/main.py", line 7, in 
    from . import version, cmdline
  File "/usr/local/lib/python2.7/dist-packages/mitmproxy/cmdline.py", line 6, in 
    import configargparse
ImportError: No module named configargparse

81voto

grooveplex Points 2478

Les autres réponses ne traitent que des dépendances pour faire disparaître les erreurs que vous avez mentionnées. La liste de toutes les dépendances nécessaires est en réalité beaucoup plus longue.

Vous pouvez les installer toutes avec :

sudo apt-get install python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev

Ensuite, vous pouvez installer mitmproxy :

sudo pip install mitmproxy

Et l'exécuter :

mitmproxy

Source : la documentation

71voto

Knud Larsen Points 2844
»» erreur fatale : openssl/opensslv.h : Aucun fichier ou dossier de ce type ««

Installer openssl : sudo apt-get update && sudo apt-get install libssl-dev

4voto

Joe the Person Points 5090

En fait, il y a deux problèmes différents dans votre sortie (en supposant que tous les autres problèmes de dépendance sont déjà résolus). Les deux doivent être corrigés.

Bibliothèques SSL manquantes

  1. Comme l'a indiqué Knud Larsen dans leur réponse à cette question, vous manquez des bibliothèques OpenSSL. Référez-vous à leur réponse sur cette question pour ce problème.

Modules Python manquants

  1. Il y a un script python qui fait partie de ce que vous exécutez, et il manque un module (appelé configargparse) dont il a besoin pour fonctionner.

    Si vous êtes sur Ubuntu 15.10 ou plus récent, vous pouvez l'installer en faisant sudo apt-get install python-configargparse.

    Si vous êtes sur n'importe quelle version d'Ubuntu antérieure à la 15.10, vous devrez l'installer via pip pour le télécharger et le rendre disponible pour le système : sudo pip install configargparse

    (Notez que python pip install mitmproxy accomplira le même type de résolutions de dépendances une fois que vous aurez corrigé le problème des bibliothèques SSL manquantes, cependant si cela ne fonctionne pas pour une raison quelconque, vous devrez installer ce module manuellement)

REMARQUE : Votre question indique que vous utilisez Ubuntu MATE 15.10. Ubuntu 15.10 pour toutes les variantes est passé EndOfLife le 28 juillet 2016. Vous devriez envisager de passer à la version 16.04, afin de continuer à bénéficier du support et des mises à jour d'Ubuntu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X