当前位置: 首页>>技术教程>>正文


“致命错误:openssl/opensslv.h:没有这样的文件或目录”编译mitmproxy

, , ,

问题描述

我正在尝试通过像这样的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

最佳解决方案

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

你可以安装它们:

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

资料来源:documentation

次佳解决方案

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

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

第三种解决方案

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

缺少SSL库

  1. 正如Knud Larsen在其answer to this question中所述,您缺少OpenSSL库。有关该问题,请参阅他们对此问题的回答。

缺少Python模块

  1. 有一个python脚本是你正在运行的任何东西的一部分,它缺少一个需要运行的模块(称为configargparse)。如果您使用的是Ubuntu 15.10或更高版本,则可以通过执行sudo apt-get install python-configargparse来安装它。如果您在15.10之前使用任何版本的Ubuntu,则需要通过pip安装它以下载它并使其可供系统使用:sudo pip install configargparse(请注意,一旦修复缺少的SSL库问题,python pip install mitmproxy将实现相同类型的依赖项解决方案,但如果由于某种原因你不必手动安装该模块)

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.

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2023.html,未经允许,请勿转载。