You are not logged in.
Informational only.
The current version of 'displaycal' (3.9.17-3) is not compatible with the current version of 'python' ( 3.14.2 )
To get it to run properly I had to install 'pyenv' and install a version of python 3.13.
There does not seem to much activity at 'https://github.com/eoyilmaz/displaycal-py3' ![]()
Offline
Please specify what you mean by "is not compatible"
Offline
Sorry about delay didn't have the Spyder with me.
vicb@amelia [ ~ ]$ displaycal
Traceback (most recent call last):
File "/usr/bin/displaycal", line 4, in <module>
from DisplayCAL.main import main
File "/usr/lib/python3.14/site-packages/DisplayCAL/main.py", line 21, in <module>
raise RuntimeError(
...<6 lines>...
)
RuntimeError: Need Python version >= 3.8 <= 3.13, got 3.14.2
vicb@amelia [ ~ ]$ python -V
Python 3.14.2
vicb@amelia [ ~ ]$ pacman -Q | grep -e python\ -e displaycal
displaycal 3.9.17-2
gst-python 1.26.10-2
python 3.14.2-2
python-dnspython 1:2.8.0-3
python-wxpython 1:4.2.3-4Offline
you aren't using the current version of displaycal
Offline
BTW I'm running this on a different box and updated displaycal
vicb@amelia [ ~ ]$ pacman -Q | grep displaycal
displaycal 3.9.17-3It gets this far and stops.
This is the terminal dump and the informational window that is displayed shows the portion in the 'box' below.
.
.
Generating A2B1 table lookup input values...
cLUT grid res: 33
Looking up input values through A2B1 table (12 workers)...
Using CAM Jab for clipping
Acquired lock file: <DisplayCAL.main.AppLock object at 0x7f3366c1ba10>
displaycal 3.9.17 2025-09-11T10:20:26Z
arch rolling n/a x86_64
Python 3.14.2 (main, Jan 2 2026, 14:27:39) [GCC 15.2.1 20251112]
Faulthandler
wxPython 4.2.3 gtk3 (phoenix) wxWidgets 3.2.9
Encoding: utf-8
File system encoding: utf-8
Loading /home/vicb/.config/dispcalGUI/dispcalGUI.ini
Loading /home/vicb/.config/dispcalGUI/dispcalGUI-testchart-editor.ini
Existing client using port 40365
Connecting to 40365...
Connected to 40365
Getting instance name
AppSocket.send start
data_to_send: b'getappname\n'
Sent scripting request, awaiting response...
Scripting client 127.0.0.1:43366 connected
Received scripting request from 127.0.0.1:43366: getappname
AppSocket.read() end
Got response: 'displaycal'
Notifying existing instance
AppSocket.send start
data_to_send: b'DisplayCAL\n'
Sent scripting request, awaiting response...
Received scripting request from 127.0.0.1:43366: DisplayCAL
NoneType: None
┌──────────────────────────────────────────────────────────────────────────────┐
│ Traceback (most recent call last): │
│ File "/usr/lib/python3.14/site-packages/wx/core.py", line 3425, in │
│ <lambda> │
│ lambda event: event.callable(*event.args, **event.kw) ) │
│ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line │
│ 1383, in finish_processing │
│ state = self.get_app_state("plain") │
│ File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line │
│ 1218, in get_app_state │
│ response = format_ui_element(win, format) │
│ File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line │
│ 8015, in format_ui_element │
│ (child.Label and " " + demjson.encode(child.Label)), │
│ ~~~~~~~~~~~~~~^^^^^^^^^^^^^ │
│ File "/usr/lib/python3.14/site-packages/DisplayCAL/demjson_compat.py", │
│ line 153, in encode │
│ return json.dumps( │
│ ~~~~~~~~~~^ │
│ obj, │
│ ^^^^ │
│ ...<3 lines>... │
│ encoding=encoding or "utf-8", │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ ) │
│ ^ │
│ File "/usr/lib/python3.14/json/__init__.py", line 238, in dumps │
│ return cls( │
│ ~~~^ │
│ skipkeys=skipkeys, ensure_ascii=ensure_ascii, │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ check_circular=check_circular, allow_nan=allow_nan, indent=indent, │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ separators=separators, default=default, sort_keys=sort_keys, │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ **kw).encode(obj) │
│ ^^^^^ │
│ TypeError: JSONEncoder.__init__() got an unexpected keyword argument │
│ 'encoding' │
└──────────────────────────────────────────────────────────────────────────────┘I press the 'ok' button on the window that shows the error message
and then it hangs indefinitely on 'Create profile from measurement data...' window.
All that window shows is
an ever increasing 'Elapsed time'
and 'Remaining time' as '--:--:--'
Offline
I see the exact same behavior here, and solved the problem the exact same way. I don't calibrate my monitor too often, and displaycal worked great the last time I used it (last fall).
Online
1: The wiki article needs updating ( https://wiki.archlinux.org/title/ICC_profiles ) . As following the instructions there will result in displaycal being unusable.
2: Why is this package still in the main repository? IMO it should be moved to AUR.
Offline
Just a quick update. Went to use Displaycal today and ran into the exact same issue as before. I am using displaycal 3.9.17-4 with python 3.14.6-1 and a x-rite i1Studio spectrometer. I have used the same spectrometer before without any issues.
Online
Exact same error as #5?
https://github.com/eoyilmaz/displaycal-py3/issues/637
Offline
It's this error:
JSONEncoder.__init__() got an unexpected keyword argument 'encoding'
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/wx/core.py", line 3425, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line 1383, in finish_processing
state = self.get_app_state("plain")
File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line 1218, in get_app_state
response = format_ui_element(win, format)
File "/usr/lib/python3.14/site-packages/DisplayCAL/wxwindows.py", line 8015, in format_ui_element
(child.Label and " " + demjson.encode(child.Label)),
~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/DisplayCAL/demjson_compat.py", line 153, in encode
return json.dumps(
~~~~~~~~~~^
obj,
^^^^
...<3 lines>...
encoding=encoding or "utf-8",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/json/__init__.py", line 238, in dumps
return cls(
~~~^
skipkeys=skipkeys, ensure_ascii=ensure_ascii,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
check_circular=check_circular, allow_nan=allow_nan, indent=indent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
separators=separators, default=default, sort_keys=sort_keys,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**kw).encode(obj)
^^^^^
TypeError: JSONEncoder.__init__() got an unexpected keyword argument 'encoding'Displaycal operates properly while controlling the spectrometer, and errors while it's computing the icc file. I tried modifying demjson_compat.py to remove the encoding argument, but I'm a complete rookie with python so I'm not sure I did it right (and it didn't work, just resulted in displaycal hanging without an error message).
Last edited by glenjo (Today 18:29:30)
Online
pacman -Qikk python-wxpython displaycalOffline
If I go to Github eoyilmaz/displaycal-py3 and follow the instructions to build from source (Makefile build), I end up with a different error:
Fatal error: name 'sdl' is not defined
Traceback (most recent call last):
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/main.py", line 845, in main
_main(module, name, app_lock_file_name)
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/main.py", line 137, in _main
run_app(module)
~~~~~~~^^^^^^^^
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/main.py", line 830, in run_app
main()
~~~~^^
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/display_cal.py", line 22795, in main
app.TopWindow = StartupFrame()
~~~~~~~~~~~~^^
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/display_cal.py", line 21797, in __init__
self.startup_sound = audio.Sound(get_data_path("theme/intro_new.wav"))
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/glen/Projects/displaycal-py3/.venv/lib/python3.14/site-packages/DisplayCAL/audio.py", line 601, in __init__
rw = sdl.SDL_RWFromFile(safe_str(self._filename, "UTF-8"), "rb")
^^^
NameError: name 'sdl' is not definedSo the current develope branch seems to blow up trying to use sdl which is strange because here's what's shown before the error:
--- launch: Launching DisplayCAL ---
Acquired lock file: <DisplayCAL.main.AppLock object at 0x7f812c3ebb60>
displaycal 3.9.18.dev12
arch rolling n/a x86_64
Python 3.14.6 (main, Jun 15 2026, 11:36:54) [GCC 16.1.1 20260430]
Faulthandler
wxPython 4.2.5 gtk3 (phoenix) wxWidgets 3.2.9
Encoding: utf-8
File system encoding: utf-8
Loading /home/glen/.config/DisplayCAL/DisplayCAL.ini
Loading /home/glen/.config/DisplayCAL/DisplayCAL-testchart-editor.ini
listening
writing to lock file: port: 15411
Starting up...
SDL2: libSDL2-2.0.so.0
SDL2_mixer: libSDL2_mixer-2.0.so.0
SDL: libSDL-1.2.so.0
SDL_mixer: libSDL_mixer-1.2.so.0
Audio module: SDL 1.2
So I've been looking at audio.py trying to figure out what's changed since the audio works on the other version. (Looks like a lot has changed which is the nature of a development branch.)
Online
Ran pacman -Qikk python-wxpython displaycal, here's the results:
Name : python-wxpython
Version : 1:4.2.5-1
Description : Cross-platform GUI toolkit
Architecture : x86_64
URL : https://www.wxpython.org
Licenses : custom:wxWindows
Groups : None
Provides : None
Depends On : wxwidgets-gtk3 python
Optional Deps : python-pypubsub: Alternative to the deprecated wx.lib.pubsub API
Required By : displaycal grass kicad
Optional For : libkate python-matplotlib python-pyudev
Conflicts With : None
Replaces : None
Installed Size : 53.21 MiB
Packager : Felix Yan <felixonmars@archlinux.org>
Build Date : Thu 02 Apr 2026 10:31:29 AM PDT
Install Date : Thu 02 Apr 2026 02:19:56 PM PDT
Install Reason : Installed as a dependency for another package
Install Script : No
Validated By : Signature
python-wxpython: 951 total files, 0 altered files
Name : displaycal
Version : 3.9.17-4
Description : Open Source Display Calibration and Characterization powered by Argyll CMS (Formerly known as dispcalGUI)
Architecture : x86_64
URL : https://github.com/eoyilmaz/displaycal-py3
Licenses : GPL-3.0-or-later
Groups : None
Provides : None
Depends On : argyllcms dbus dbus-python glib2 python-certifi python-distro python-numpy python-pillow python-send2trash python-wxpython python-zeroconf
Optional Deps : gnome-color-manager: profile installation for GNOME
colord-kde: profile installation for KDE Plasma [installed]
Required By : None
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 40.05 MiB
Packager : Balló György <bgyorgy@archlinux.org>
Build Date : Thu 11 Jun 2026 12:08:34 AM PDT
Install Date : Sat 20 Jun 2026 11:51:58 PM PDT
Install Reason : Explicitly installed
Install Script : No
Validated By : Signature
displaycal: 1605 total files, 0 altered filesOnline
And thanks, I appreciate the help!
Online
https://github.com/eoyilmaz/displaycal-py3/issues/702
Seems the upstream fix hasn't made it into any release.
You probably don't have https://archlinux.org/packages/extra/x8 … on-pysdl3/ ?
Offline
Yes, I have python-pysdl3 installed:
Version : 0.9.11b1-1
Description : Python ctypes wrapper around SDL3
Architecture : x86_64
URL : https://github.com/Aermoss/PySDL3
Licenses : MIT
Groups : None
Provides : None
Depends On : alsa-lib freetype2 python-aiohttp python-packaging python-requests sdl3
Optional Deps : sdl3_image [installed]
sdl3_ttf [installed]
Required By : None
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 3.01 MiB
Packager : Martin Rys <martin@archlinux.org>
Build Date : Tue 12 May 2026 04:53:24 AM PDT
Install Date : Sat 20 Jun 2026 07:28:23 PM PDT
Install Reason : Explicitly installed
Install Script : Yes
Validated By : Signature
It's been installed for most of this (and a couple of re-boots).
Online
Offline
Since it's asking for SDL2, https://aur.archlinux.org/packages/python-pysdl2
There's also https://github.com/eoyilmaz/displaycal- … 2774036631
Offline
Installed python-pysdl2 from the AUR and rebuilt the develop branch of displaycal-py3. Got the same sdl error.
I'll try installing python3.13 and pointing the arch displaycal towards that.
Thanks!
Online