web-dev-qa-db-fra.com

"Erreur fatale: openssl / opensslv.h: Aucun fichier ou répertoire de ce type" lors de la compilation de mitmproxy

J'essaie d'installer le paquet mitmproxy via pip comme ceci:

$ Sudo pip install mitmproxy

Il se termine avec 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: No such file or directory

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------
  Can't roll back cryptography; was not uninstalled
Cleaning up...
Command /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 failed with error code 1 in /tmp/pip-build-jvLTVf/cryptography
Storing debug log for failure in /home/niklas/.pip/pip.log

Après cela, il est un peu 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 <module>
    from mitmproxy.main import mitmproxy
  File "/usr/local/lib/python2.7/dist-packages/mitmproxy/main.py", line 7, in <module>
    from . import version, cmdline
  File "/usr/local/lib/python2.7/dist-packages/mitmproxy/cmdline.py", line 6, in <module>
    import configargparse
ImportError: No module named configargparse
49
Niklas

Les autres réponses ne concernent que les dépendances pour éliminer 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 tous les installer 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 lancez-le:

mitmproxy

Source: le documentation

75
grooveplex
»» fatal error: openssl/opensslv.h: No such file or directory ««

Installez openssl: Sudo apt-get update && Sudo apt-get install libssl-dev

65
Knud Larsen

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

Bibliothèques SSL manquantes

  1. Comme indiqué par Knud Larsen dans leur réponse à cette question , , les bibliothèques OpenSSL vous manquent . Reportez-vous à leur réponse sur cette question pour cette question.

Manquant Python Modules

  1. Un script python fait partie de tout ce que vous exécutez et il manque un module (appelé configargparse) dont il a besoin pour s'exécuter.

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

    Si vous utilisez n’importe quelle version d’Ubuntu avant 15.10 , vous devrez l’installer via pip pour le télécharger et le mettre à la disposition du système: Sudo pip install configargparse

    (Notez que python pip install mitmproxy obtiendra le même type de résolution de dépendance une fois que vous aurez résolu le problème des bibliothèques SSL manquantes. Toutefois, si ce n'est pas le cas, 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 parti EndOfLife le 28 juillet 2016. Vous devriez envisager une mise à niveau vers 16.04, afin de recevoir une assistance et des mises à jour continues pour Ubuntu.

4
Thomas Ward