"Errore fatale: openssl / opensslv.h: nessun file o directory simile" compilando mitmproxy


52

Sto cercando di installare il pacchetto mitmproxy tramite pip in questo modo:

$ sudo pip install mitmproxy

Termina con il seguente messaggio di errore:

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

Dopo questo è in qualche modo installato, almeno posso disinstallarlo in seguito.

 $ mitmproxy

porta a

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

meta.askubuntu.com/questions/15739/… : raccomando l'aggiornamento a 16.04.
anonymous2,

Risposte:


79

Le altre risposte riguardano solo le dipendenze per eliminare gli errori menzionati. L'elenco di tutte le dipendenze necessarie è in realtà molto più lungo.

Puoi installarli tutti con:

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

Quindi è possibile installare mitmproxy:

sudo pip install mitmproxy

Ed eseguilo:

mitmproxy

Fonte: la documentazione


1
ha funzionato, ma in qualche modo ha ucciso pip. Ho dovuto reinstallarlo. Ora funziona tutto. :)
Niklas,

1
@Niklas Mi fa piacere sapere che ha risolto il tuo problema. Vi auguro una buona giornata!
grooveplex,

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

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


Ho ricevuto lo stesso errore durante l'installazione di pyOpenSSL in Ubuntu 16.04 (all'interno di un python virtualenv). Questa risposta ha risolto il mio problema. Grazie
yucer

risolto problema durante l'installazione di "pip install fabric" sul server Ubuntu (stretch / sid o Ubuntu 16.04.1 LTS).
Sergei G,

1
Questa è la risposta semplice e chiara a tutto ciò che si basa su pypi.python.org/pypi/cryptography/1.8.1 ad esempio pypi.python.org/pypi/paramiko/2.1.2
Bruno Bronosky

1
Salvato l'errore durante l'installazione di hashpumpy.
Modello non standard

Ho avuto un problema simile si tenta di installare keyringsu alpine, ma ci hanno dato ERROR: unsatisfiable constraintsquando si tenta di installare libssl-dev. È stato in grado di risolverlo installando openssl-devinvece.
Cowlinator l'

4

In realtà ci sono due diversi problemi qui nel tuo output (supponendo che tutti gli altri problemi di dipendenza siano già stati risolti). Entrambi devono essere riparati.

Librerie SSL mancanti

  1. Come affermato da Knud Larsen nella loro risposta a questa domanda , mancano le librerie OpenSSL . Fare riferimento alla loro risposta su questa domanda per quel problema.

Moduli Python mancanti

  1. C'è uno script Python che fa parte di tutto ciò che stai eseguendo e manca un modulo (chiamato configargparse) che deve essere eseguito.

    Se sei su Ubuntu 15.10 o versioni successive , puoi installarlo facendo sudo apt-get install python-configargparse.

    Se utilizzi una versione di Ubuntu precedente al 15.10 , dovrai installarlo tramite pipper scaricarlo e renderlo disponibile al sistema:sudo pip install configargparse

    (Tieni presente che python pip install mitmproxyotterrai lo stesso tipo di risoluzioni di dipendenza una volta risolto il problema delle librerie SSL mancanti, tuttavia se non lo è per qualche motivo dovrai installare manualmente quel modulo)

NOTA: la tua domanda afferma che stai usando Ubuntu MATE 15.10. Ubuntu 15.10 per tutte le varianti è diventato EndOfLife il 28 luglio 2016. Dovresti prendere in considerazione l'aggiornamento a 16.04, al fine di ricevere supporto e aggiornamenti continui su Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.