"фатальная ошибка: openssl / opensslv.h: нет такого файла или каталога" компиляция mitmproxy

39

Я пытаюсь установить пакет mitmproxy через pip следующим образом:

$ sudo pip install mitmproxy

Он заканчивается следующим сообщением об ошибке:

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

После этого он несколько установлен, по крайней мере, я могу его удалить позже.

 $ mitmproxy

приводит к

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 11.07.2016 в 11:53
источник

3 ответа

60

Другие ответы касаются только зависимостей, чтобы ошибки, о которых вы говорили, ушли. Список всех необходимых зависимостей на самом деле намного дольше.

Вы можете установить их все с помощью:

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

Затем вы можете установить mitmproxy :

sudo pip install mitmproxy

И запустите его:

mitmproxy

Источник: документация

    
ответ дан grooveplex 11.07.2016 в 12:17
источник
46
»» fatal error: openssl/opensslv.h: No such file or directory ««

Установить openssl: sudo apt-get update && sudo apt-get install libssl-dev

    
ответ дан Knud Larsen 11.07.2016 в 11:58
4

На вашем выходе есть два разных вопроса (при условии, что все другие проблемы с зависимостями уже решены). Оба требуют исправления.

Отсутствующие библиотеки SSL

  1. Как было указано Кнуда Ларсена в своем ответьте на этот вопрос , вам не хватает библиотек OpenSSL . Обратитесь к их ответу на этот вопрос по этому вопросу.

Отсутствующие модули Python

  1. Существует сценарий python, который является частью того, что вы используете, и ему не хватает модуля (называемого configargparse ), который ему нужно запустить.

    Если вы находитесь в Ubuntu 15.10 или новее , вы можете установить его, выполнив sudo apt-get install python-configargparse .

    Если вы используете любую версию Ubuntu до 15.10 , вам необходимо установить ее через pip , чтобы загрузить ее и сделать ее доступной для системы: sudo pip install configargparse

    (Обратите внимание, что python pip install mitmproxy достигнет того же типа разрешений зависимостей, если вы устраните проблему с недостатками SSL-библиотек, однако если по какой-то причине вам придется вручную установить этот модуль)

  

ПРИМЕЧАНИЕ. В вашем вопросе говорится, что вы используете Ubuntu MATE 15.10. Ubuntu 15.10 для всех вариантов отправился EndOfLife 28 июля 2016 года. Вы должны рассмотреть возможность обновления до 16.04, чтобы получить продолжение поддержки Ubuntu и обновления.

    
ответ дан Thomas Ward 11.07.2016 в 12:07