编译 mitmproxy 时出现“致命错误:openssl/opensslv.h:没有此文件或目录”

编译 mitmproxy 时出现“致命错误:openssl/opensslv.h:没有此文件或目录”

我正在尝试通过 pip 安装 mitmproxy 包,如下所示:

$ 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

答案1

其他答案仅解决依赖项问题,以消除您提到的错误。所需的所有依赖项列表实际上要长得多。

您可以使用以下方式安装它们:

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

资料来源:文档

答案2

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

安装 openssl:sudo apt-get update && sudo apt-get install libssl-dev

答案3

您的输出中实际上有两个不同的问题(假设所有其他依赖性问题都已解决)。两者都需要修复。

缺少 SSL 库

  1. 正如克努德拉尔森在他们的回答这个问题你缺少 OpenSSL 库。有关该问题,请参阅他们对这个问题的回答。

缺少 Python 模块

  1. 您正在运行的程序中有一个 python 脚本,但它缺少configargparse运行所需的模块(称为)。

    如果你Ubuntu 15.10 或更高版本,您可以通过以下方式安装它sudo apt-get install python-configargparse

    如果你15.10 之前的任何 Ubuntu 版本您需要通过pip以下方式安装它:下载它并使其可供系统使用:sudo pip install configargparse

    (请注意,python pip install mitmproxy一旦您修复了缺少的 SSL 库问题,就会实现相同类型的依赖关系解析,但是如果由于某种原因没有实现,您将必须手动安装该模块)

注意:您的问题表明您正在使用 Ubuntu MATE 15.10。Ubuntu 15.10 的所有版本都已 生命尽头于 2016 年 7 月 28 日。您应该考虑升级到 16.04,以便继续获得 Ubuntu 支持和更新。

相关内容