web-dev-qa-db-ja.com

「致命的なエラー: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
51
Niklas

他の答えは、あなたが言及したエラーをなくすための依存関係のみを扱っています。必要なすべての依存関係のリストは、実際にはもっと長くなります。

これらはすべて次の方法でインストールできます。

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

ソース: ドキュメント

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

Opensslをインストールします:Sudo apt-get update && Sudo apt-get install libssl-dev

65
Knud Larsen

出力には実際には2つの異なる問題があります(他のすべての依存関係の問題が既に解決されていると仮定)。両方とも修正する必要があります。

SSLライブラリがありません

  1. Knud Larsenこの質問への回答で述べたように、OpenSSLライブラリがありません。その問題については、この質問に関する回答を参照してください。

Missing Python Modules

  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 になりました。Ubuntuのサポートと更新を継続して受けるには、16.04へのアップグレードを検討する必要があります。

4
Thomas Ward