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


52

我正在尝试通过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

meta.askubuntu.com/questions/15739/…:我建议更新为16.04。
匿名

Answers:


79

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

您可以使用以下命令安装它们:

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

来源:文档


1
工作,但以某种方式杀死了点子。不得不重新安装它。现在一切正常。:)
Niklas

1
@Niklas我很高兴听到它解决了您的问题。祝你有美好的一天!
凹槽复活'16

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

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


在Ubuntu 16.04中(在python virtualenv中)设置pyOpenSSL时,确实收到了相同的错误。这个答案解决了我的问题。谢谢
yucer

在Ubuntu服务器(拉伸/ sid或Ubuntu 16.04.1 LTS)上安装“ pip install fabric”时已解决的问题。
Sergei G

1
对于任何依赖pypi.python.org/pypi/cryptography/1.8.1的示例,这都是简单的答案,例如pypi.python.org/pypi/paramiko/2.1.2
Bruno Bronosky

1
在安装hashpumpy时保存了错误。
NonStandardModel

我在尝试安装keyring时遇到了类似的问题alpine,但是ERROR: unsatisfiable constraints在尝试安装时遇到了问题libssl-dev。可以通过安装openssl-dev代替解决。
Cowlinator

4

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

缺少SSL库

  1. 就像Knud Larsen回答这个问题时所说的那样,您缺少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日退出EndOfLife。您应考虑升级到16.04,以便获得继续的Ubuntu支持和更新。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.