![编译 mitmproxy 时出现“致命错误:openssl/opensslv.h:没有此文件或目录”](https://linux22.com/image/992071/%E7%BC%96%E8%AF%91%20mitmproxy%20%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF%EF%BC%9Aopenssl%2Fopensslv.h%EF%BC%9A%E6%B2%A1%E6%9C%89%E6%AD%A4%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E2%80%9D.png)
我正在尝试通过 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 库
缺少 Python 模块
您正在运行的程序中有一个 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 支持和更新。