コマンドラインで mitmproxy コマンドを実行すると、次のエラーが表示されます。
% mitmproxy
Traceback (most recent call last):
File "/usr/local/bin/mitmproxy", line 7, in <module>
from libmproxy.main import mitmproxy
File "/usr/local/lib/python3.5/site-packages/libmproxy/main.py", line 5, in <module>
import thread
ImportError: No module named 'thread'
このエラーをグーグルで検索して、このstackoverflow Q&Aページを見つけました。
pydev importerror:threadというモジュールはありません。pydevのアップグレード後にデバッグは機能しなくなります
上記のページによると、モジュール「thread
」の名前が「_thread
"でpython3。
だから、私はこのエラーの原因を知っていますが、その後は何ですか?
このエラーを取り除くために今何をすべきかわかりません。
私はpythonが初めてです。 mitmproxy を使用するため、以下に示すように、Mac OSXにPythonおよびpip
]をインストールしました。
% which pip
/usr/local/bin/pip
% pip --version
pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5)
% which python
/usr/bin/python
% which python3
/usr/local/bin/python3
% python --version
Python 2.7.10
% python3 --version
Python 3.5.1
誰が今何をすべきか教えてもらえますか?
追加情報
@linusgが答えたように、私は「thread.py
"ファイルを" site-packages "ディレクトリに置き、以下のコードを" thread.py
"
from _thread import *
__all__ = ("error", "LockType", "start_new_thread", "interrupt_main", "exit", "allocate_lock", "get_ident", "stack_size", "acquire", "release", "locked")
これを行った後、「ImportError: No module named 'thread'
"は消えましたが、別のImportErrorがあります。これは" import Cookie ImportError: No module named 'Cookie'
"。
Python 3、Cookie
モジュールの名前はhttp.cookies
(stackoverflow.com/questions/3522029/Django-mod-python-error)。
今、私は何をすることになっていますか?
「site-packages」ディレクトリにあるもの
% ls /usr/local/lib/python3.5/site-packages (git)-[master]
ConfigArgParse-0.10.0.dist-info/ mitmproxy-0.15.dist-info/
OpenSSL/ netlib/
PIL/ netlib-0.15.1.dist-info/
Pillow-3.0.0.dist-info/ passlib/
PyYAML-3.11.dist-info/ passlib-1.6.5.dist-info/
__pycache__/ pathtools/
_cffi_backend.cpython-35m-darwin.so* pathtools-0.1.2.dist-info/
_markerlib/ pip/
_watchdog_fsevents.cpython-35m-darwin.so* pip-8.1.1.dist-info/
argh/ pkg_resources/
argh-0.26.1.dist-info/ pyOpenSSL-0.15.1.dist-info/
backports/ pyasn1/
backports.ssl_match_hostname-3.5.0.1.dist-info/ pyasn1-0.1.9.dist-info/
blinker/ pycparser/
blinker-1.4.dist-info/ pycparser-2.14.dist-info/
certifi/ pyparsing-2.0.7.dist-info/
certifi-2016.2.28.dist-info/ pyparsing.py
cffi/ pyperclip/
cffi-1.6.0.dist-info/ pyperclip-1.5.27.dist-info/
click/ setuptools/
click-6.2.dist-info/ setuptools-19.4-py3.5.Egg-info/
configargparse.py sitecustomize.py
construct/ six-1.10.0.dist-info/
construct-2.5.2.dist-info/ six.py
cryptography/ test/
cryptography-1.1.2.dist-info/ thread.py
easy_install.py tornado/
hpack/ tornado-4.3.dist-info/
hpack-2.0.1.dist-info/ urwid/
html2text/ urwid-1.3.1.dist-info/
html2text-2015.11.4.dist-info/ watchdog/
idna/ watchdog-0.8.3.dist-info/
idna-2.1.dist-info/ wheel/
libmproxy/ wheel-0.26.0-py3.5.Egg-info/
lxml/ yaml/
lxml-3.4.4.dist-info/
Python 2のコードをPython 3で実行しようとしていますが、動作しません。
2016年4月の時点で、mitmproxyはPython 2.7のみをサポートしています。今後数か月でこれを修正するために積極的に取り組んでいますが、現時点ではPython 2または http://mitmproxy.org で提供されるバイナリ。
2016年8月の時点で、mitmproxyの開発バージョンはPython 3.5+をサポートしています。次のリリース(0.18)は、Python 3.5 +。
2017年1月の時点で、mitmproxyはPython 3.5+。
保存されるファイルの名前はスレッドである可能性があります。スレッドはPythonの定義済みクラスであるため、エラーが発生します。ファイルの名前を変更してみてください。それが役立つだろう....
最も簡単な解決策は、python2でvirtualenvを作成し、このvirtualenvでmitmproxyを実行することです
virtualenv -p `which python2` .env
source .env/bin/activate
pip install mitmproxy
.env/bin/mitmproxy