umonitor not working with python 3.11
Hello, I just upgraded python to 3.11 and umonitor is not working anymore.
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
/usr/lib/python3/dist-packages/setuptools/command/easy_install.py:146: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running bdist_egg
running egg_info
writing umonitor.egg-info/PKG-INFO
writing dependency_links to umonitor.egg-info/dependency_links.txt
writing entry points to umonitor.egg-info/entry_points.txt
writing requirements to umonitor.egg-info/requires.txt
writing top-level names to umonitor.egg-info/top_level.txt
reading manifest file 'umonitor.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'umonitor.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
building 'screen' extension
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.11 -c umonitor/screen.c -o build/temp.linux-x86_64-cpython-311/umonitor/screen.o
umonitor/screen.c:215:12: fatal error: longintrepr.h: File o directory non esistente
215 | #include "longintrepr.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
You can comment that line out, per the changelog:
The non-limited API files cellobject.h, classobject.h, context.h, funcobject.h, genobject.h and longintrepr.h have been moved to the Include/cpython directory. Moreover, the eval.h header file was removed. These files must not be included directly, as they are already included in Python.h
Then you get an error about xcb/randr.h, but I solved it by installing libxcb-randr0-dev with apt.
It now raises loads of errors about incomplete type ‘PyFrameObject’, more differences between versions, I guess? I'm unsure how to proceed beyond this point.
suggested solution worked in my case (py3.10) thx! @code32123 and @gabri94