"Schwerwiegender Fehler: openssl / opensslv.h: Keine solche Datei oder kein solches Verzeichnis" beim Kompilieren von mitmproxy

52

Ich versuche, das mitmproxy-Paket über Pip wie folgt zu installieren:

$ sudo pip install mitmproxy

Es endet mit folgender Fehlermeldung:

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

Danach ist es etwas installiert, zumindest kann ich es danach deinstallieren.

 $ mitmproxy

führt zu

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
Niklas
quelle
meta.askubuntu.com/questions/15739/… : Ich empfehle ein Update auf den 16.04.
anonymous2

Antworten:

79

Die anderen Antworten behandeln nur die Abhängigkeiten, damit die von Ihnen erwähnten Fehler verschwinden. Die Liste aller benötigten Abhängigkeiten ist tatsächlich viel länger.

Sie können sie alle installieren mit:

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

Dann können Sie installieren mitmproxy:

sudo pip install mitmproxy

Und führe es aus:

mitmproxy

Quelle: die Dokumentation

grooveplex
quelle
1
funktioniert, aber irgendwie Pip getötet. Musste es neu installieren. Jetzt funktioniert alles. :)
Niklas
1
@ Niklas Ich bin froh zu hören, dass es dein Problem gelöst hat. Ich wünsche ihnen einen wunderbaren Tag!
Grooveplex
66
»» fatal error: openssl/opensslv.h: No such file or directory ««

Installieren Sie openssl: sudo apt-get update && sudo apt-get install libssl-dev

Knud Larsen
quelle
Ich habe den gleichen Fehler während des Setups von pyOpenSSL in Ubuntu 16.04 (innerhalb eines virtuellen Python-Fensters) erhalten. Diese Antwort löste mein Problem. Thanks
yucer
Problem bei der Installation von "pip install fabric" auf einem Ubuntu-Server (stretch / sid oder Ubuntu 16.04.1 LTS) behoben.
Sergei G
1
Dies ist die einfache, saubere Antwort für alles, was auf pypi.python.org/pypi/cryptography/1.8.1 beruht, zum Beispiel pypi.python.org/pypi/paramiko/2.1.2
Bruno Bronosky
1
Der Fehler wurde während der Installation von hashpumpy gespeichert.
NonStandardModel
Ich hatte ein ähnliches Problem versucht zu installieren keyringauf alpine, bekam aber ERROR: unsatisfiable constraintswenn zu installieren versucht libssl-dev. Konnte es durch Installation lösen openssl-dev.
Cowlinator
4

Ihre Ausgabe enthält zwei verschiedene Probleme (vorausgesetzt, alle anderen Probleme mit Abhängigkeiten sind bereits behoben). Beides muss behoben werden.

Fehlende SSL-Bibliotheken

  1. Wie Knud Larsen in seiner Antwort auf diese Frage festgestellt hat , fehlen Ihnen die OpenSSL-Bibliotheken . Beziehen Sie sich für dieses Problem auf die Antwort auf diese Frage.

Fehlende Python-Module

  1. Es gibt ein Python-Skript, das Teil dessen ist, was Sie configargparseausführen , und es fehlt ein Modul (genannt ), das es ausführen muss.

    Wenn Sie mit Ubuntu 15.10 oder neuer arbeiten , können Sie es folgendermaßen installieren sudo apt-get install python-configargparse.

    Wenn Sie eine Ubuntu-Version vor 15.10 verwenden, müssen Sie diese über installieren, um sie pipherunterzuladen und dem System zur Verfügung zu stellen:sudo pip install configargparse

    (Beachten Sie, dass python pip install mitmproxydieselbe Art von Abhängigkeitsauflösung erzielt wird, sobald Sie das Problem mit den fehlenden SSL-Bibliotheken behoben haben. Wenn dies jedoch aus irgendeinem Grund nicht der Fall ist, müssen Sie das Modul manuell installieren.)

HINWEIS: In Ihrer Frage steht, dass Sie Ubuntu MATE 15.10 verwenden. Ubuntu 15.10 für alle Varianten ist seit dem 28. Juli 2016 EndOfLife . Sie sollten ein Upgrade auf 16.04 in Betracht ziehen, um weiterhin Ubuntu-Support und -Updates zu erhalten.

Thomas Ward
quelle