DisplayCAL won't run with python 3.11

I recently did a fresh install of Arch Linux and it installed python 3.11 which apparently breaks DisplayCAL. When I run it I get

Traceback (most recent call last):
  File "/usr/bin/displaycal", line 4, in <module>
    from DisplayCAL.main import main
  File "/usr/lib/python3.11/site-packages/DisplayCAL/main.py", line 27, in <module>
    raise RuntimeError(
RuntimeError: Need Python version >= 3.8 <= 3.10, got 3.11.3

So I obviousy thought I would downgrade python and I tried both 3.9 and 3.10, but neither worked.

Now I get this error

Traceback (most recent call last):
  File "/usr/bin/displaycal", line 4, in <module>
    from DisplayCAL.main import main
ModuleNotFoundError: No module named 'DisplayCAL'

Any ideas hot to get DisplayCAL to work?

Yep, python 3 won’t do as far as I’m aware and there doesn’t seem to be much development done to get it ported/rewritten for python3. There’s an old and long thread about this here on pixls.

I know there’s a flatpak version, which would circumvent the python version thing:

~ $ flatpak search displaycal
Name     Description                                                     Application ID          Version Branch Remotes
Display? Display calibration and profiling with a focus on accuracy and? ?.displaycal.DisplayCAL 3.8.9.3 stable flathub

Haven’t tried that one myself (I’m still on python 2.X), but it might do the trick for you.

It’s been working with python 3 for quite some time.

It’s just now as of python 3.11 that it stopped working.

Sorry, did not realize that… Still thought that the DisplayCal and Python 3 combo was a bit of a mess, I stand corrected.

Had a look at the GitHub you mentioned and there are some open (and closed) issues/pull request that are related to python 3.11. Not sure, though, if any of those touch your specific issue.

  1. where did you install displaycal from?
  2. @eoyilmaz is maintaining a fork. maybe they just need help testing if it works under 3.11 before they do a release that enables 3.11.

you can do that testing by changing the line that blocks 3.11 and then try to use the software.

Arch Official Repos (community)

How do I do that?

I eventually managed to go around it and use a flatpak version.

according to displaycal-py3/README.md at main · eoyilmaz/displaycal-py3 · GitHub
„Currently, DisplayCAL is working with Python 3.8, 3.9 and 3.10 and wxPython 4.1.1 or 4.2.0.“

1 Like
1 Like