-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
Problem Description
In taking a system (Ubuntu 24.04 with miniconda (Python 3.12)) that successfully had mitmproxy 10 installed, upgrading to mitmproxy 11 via pip causes installation of a new urwid package, which now errors out with: undefined symbol: PyUnicode_AS_UNICODE
Steps to reproduce the behavior:
- Install mitmproxy 10 on a system with Python 3.12
- Upgrade via pip to mitmproxy 11.0.0
- Try running mitmproxy after upgrade
The prior pip-installed mitmproxy 10 had a dependency package urwid-mitmproxy. Perhaps this urwid package was created to avoid the PyUnicode_AS_UNICODE error? Or possibly urwid has changed since the version 2.1.2.1 in a way that introduces the PyUnicode_AS_UNICODE problem? Either way, before the upgrade:
tapioca@ubuntu2404:~/tapioca$ pip list | grep -E "urwid|mitmproxy"
mitmproxy 10.3.0
mitmproxy_rs 0.5.2
urwid-mitmproxy 2.1.2.1
Now, if I upgrade, I get a new version of urwid installed, presumably due to the use of WidgetWrap and potentially more.
tapioca@ubuntu2404:~/tapioca$ pip install mitmproxy --upgrade > /dev/null
tapioca@ubuntu2404:~/tapioca$ pip list | grep -E "urwid|mitmproxy"
mitmproxy 11.0.0
mitmproxy_rs 0.9.2
urwid 2.6.15
urwid-mitmproxy 2.1.2.1
In this state, mitmproxy will fail to run:
tapioca@ubuntu2404:~/tapioca$ mitmproxy
Traceback (most recent call last):
File "/home/tapioca/miniconda/bin/mitmproxy", line 8, in <module>
sys.exit(mitmproxy())
^^^^^^^^^^^
File "/home/tapioca/miniconda/lib/python3.12/site-packages/mitmproxy/tools/main.py", line 141, in mitmproxy
from mitmproxy.tools import console
File "/home/tapioca/miniconda/lib/python3.12/site-packages/mitmproxy/tools/console/__init__.py", line 1, in <module>
from mitmproxy.tools.console import master
File "/home/tapioca/miniconda/lib/python3.12/site-packages/mitmproxy/tools/console/master.py", line 14, in <module>
import urwid
File "/home/tapioca/miniconda/lib/python3.12/site-packages/urwid/__init__.py", line 30, in <module>
from urwid.canvas import (
File "/home/tapioca/miniconda/lib/python3.12/site-packages/urwid/canvas.py", line 30, in <module>
from urwid.str_util import calc_text_pos, calc_width
ImportError: /home/tapioca/miniconda/lib/python3.12/site-packages/urwid/str_util.cpython-312-x86_64-linux-gnu.so: undefined symbol: PyUnicode_AS_UNICODE
System Information
Paste the output of "mitmproxy --version" here.
(see above)