windows下python的mitmproxy启动报ModuleNotFoundError: No module named 'brotli._brotli'错误

错误日志如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
C:\Users\fengz\AppData\Local\Programs\Python\Python37\Scripts\mitmdump.exe -p 8889 -s mitm_addons.py
Traceback (most recent call last):
File "c:\users\fengz\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\fengz\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\fengz\AppData\Local\Programs\Python\Python37\Scripts\mitmdump.exe\__main__.py", line 5, in <module>
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\tools\main.py", line 22, in <module>
from ._main import * # noqa
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\tools\_main.py", line 13, in <module>
from mitmproxy.tools import cmdline # noqa
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\tools\cmdline.py", line 3, in <module>
from mitmproxy.addons import core
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\addons\__init__.py", line 1, in <module>
from mitmproxy.addons import anticache
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\addons\anticache.py", line 1, in <module>
from mitmproxy import ctx
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\ctx.py", line 1, in <module>
import mitmproxy.master # noqa
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\master.py", line 7, in <module>
from mitmproxy import addonmanager
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\addonmanager.py", line 8, in <module>
from mitmproxy import eventsequence
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\eventsequence.py", line 5, in <module>
from mitmproxy import http
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\http.py", line 6, in <module>
from mitmproxy.net import http
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\net\http\__init__.py", line 1, in <module>
from mitmproxy.net.http.request import Request
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\net\http\request.py", line 10, in <module>
from mitmproxy.net.http import message
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\net\http\message.py", line 5, in <module>
from mitmproxy.net.http import encoding
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\mitmproxy\net\http\encoding.py", line 11, in <module>
import brotli
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\brotli\__init__.py", line 3, in <module>
from .brotli import (
File "c:\users\fengz\appdata\local\programs\python\python37\lib\site-packages\brotli\brotli.py", line 5, in <module>
from ._brotli import ffi, lib
ModuleNotFoundError: No module named 'brotli._brotli'

原因

是因为我之前不小心升级了brotlipy这个库,注:虽然报的错误是brotli._brotli的依赖找不到,但实际使用的是brotlipy,新版为0.7.0版本其内没有_brotli文件

解决办法

将其降至0.6.0版本即可,在安装brotlipy 0.6.0版本时可能会报error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"错误可参考 此篇博客解决

作者: 只是学习学习
邮箱: fengzxia1000@163.com
原文地址: https://fengzxia.gitee.io/posts/7158fbb2.html
版权声明: 商业转载请联系作者获得授权,非商业转载请注明出处。