“erro fatal: openssl / opensslv.h: não existe tal arquivo ou diretório” compilação mitmproxy

48

Estou tentando instalar o pacote mitmproxy via pip assim:

$ sudo pip install mitmproxy

Termina com a seguinte mensagem de erro:

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

Depois disso, é um pouco instalado, pelo menos eu posso desinstalá-lo depois.

 $ mitmproxy

leva 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
    
por Niklas 11.07.2016 / 13:53

3 respostas

74

As outras respostas apenas abordam as dependências para fazer com que os erros que você mencionou desapareçam. A lista de todas as dependências necessárias é realmente muito mais longa.

Você pode instalá-los todos com:

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

Você pode instalar mitmproxy :

sudo pip install mitmproxy

E execute:

mitmproxy

Fonte: a documentação

    
por grooveplex 11.07.2016 / 14:17
64
»» fatal error: openssl/opensslv.h: No such file or directory ««

Instalar o openssl: sudo apt-get update && sudo apt-get install libssl-dev

    
por Knud Larsen 11.07.2016 / 13:58
4

Na verdade, existem dois problemas diferentes na saída (assumindo que todos os outros problemas de dependência já foram resolvidos). Ambos precisam ser corrigidos.

Bibliotecas SSL ausentes

  1. Como foi afirmado por Knud Larsen em seus responda a esta pergunta , você está perdendo as bibliotecas OpenSSL . Consulte a resposta deles sobre essa questão para essa questão.

Módulos Python ausentes

  1. Existe um script python que faz parte do que você está executando, e está faltando um módulo (chamado configargparse ) que ele precisa executar.

    Se você estiver no Ubuntu 15.10 ou mais recente , poderá instalá-lo fazendo sudo apt-get install python-configargparse .

    Se você estiver em qualquer versão do Ubuntu antes de 15.10 você precisará instalá-lo via pip para baixá-lo e disponibilizá-lo para o sistema: sudo pip install configargparse

    (Observe que python pip install mitmproxy atingirá o mesmo tipo de resolução de dependência depois que você corrigir o problema de bibliotecas SSL ausentes, no entanto, se por algum motivo, não for necessário instalá-lo manualmente)

NOTE: Your question states that you are using Ubuntu MATE 15.10. Ubuntu 15.10 for all variants has gone EndOfLife on July 28, 2016. You should consider upgrading to 16.04, in order to receive continued Ubuntu support and updates.

    
por Thomas Ward 11.07.2016 / 14:07