Bug 2318578
| Summary: | [abrt] DisplayCAL: module(): worker.py:15:<module>:ModuleNotFoundError: No module named 'pipes' | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Brian Morrison <bdm> | ||||||||||||||||||
| Component: | DisplayCAL | Assignee: | Neal Gompa <ngompa13> | ||||||||||||||||||
| Status: | CLOSED ERRATA | QA Contact: | |||||||||||||||||||
| Severity: | unspecified | Docs Contact: | |||||||||||||||||||
| Priority: | unspecified | ||||||||||||||||||||
| Version: | 41 | CC: | bdm, csamyn, dmitryburstein, ian, jistone, mheieis, ngompa13, rjeffman, tbradbury, van.de.bugger | ||||||||||||||||||
| Target Milestone: | --- | ||||||||||||||||||||
| Target Release: | --- | ||||||||||||||||||||
| Hardware: | x86_64 | ||||||||||||||||||||
| OS: | Unspecified | ||||||||||||||||||||
| URL: | https://retrace.fedoraproject.org/faf/reports/bthash/801fae2e39f158fb832e060bab49b115d7344bd | ||||||||||||||||||||
| Whiteboard: | abrt_hash:ad086e04dce3ecd8ff20acf17132bb86b181ee79;VARIANT_ID=workstation; | ||||||||||||||||||||
| Fixed In Version: | DisplayCAL-3.9.16-2.fc42 DisplayCAL-3.9.16-2.fc41 | Doc Type: | If docs needed, set a value | ||||||||||||||||||
| Doc Text: | Story Points: | --- | |||||||||||||||||||
| Clone Of: | Environment: | ||||||||||||||||||||
| Last Closed: | 2025-05-06 01:16:23 UTC | Type: | --- | ||||||||||||||||||
| Regression: | --- | Mount Type: | --- | ||||||||||||||||||
| Documentation: | --- | CRM: | |||||||||||||||||||
| Verified Versions: | Category: | --- | |||||||||||||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||||||
| Embargoed: | |||||||||||||||||||||
| Attachments: |
|
||||||||||||||||||||
|
Description
Brian Morrison
2024-10-14 17:27:40 UTC
Created attachment 2052084 [details]
File: os_info
Created attachment 2052085 [details]
File: environ
Created attachment 2052086 [details]
File: mountinfo
Created attachment 2052087 [details]
File: open_fds
Created attachment 2052088 [details]
File: namespaces
Created attachment 2052089 [details]
File: backtrace
Created attachment 2052090 [details]
File: cpuinfo
Created attachment 2052091 [details]
File: machineid
Can confirm the same: running the program gives an immediate error message as follows
Fatal error: No module named 'pipes'
Traceback (most recent call last):
File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 536, in main
_main(module, name, app_lock_file_name)
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 521, in _main
from DisplayCAL.display_cal import main
File "/usr/lib64/python3.13/site-packages/DisplayCAL/display_cal.py", line 107, in <module>
from DisplayCAL import madvr
File "/usr/lib64/python3.13/site-packages/DisplayCAL/madvr.py", line 31, in <module>
from DisplayCAL import worker_base
File "/usr/lib64/python3.13/site-packages/DisplayCAL/worker_base.py", line 8, in <module>
import pipes
ModuleNotFoundError: No module named 'pipes'
I think this would be fixed by updating to 3.9.14: https://github.com/eoyilmaz/displaycal-py3/releases/tag/3.9.14 https://github.com/eoyilmaz/displaycal-py3/pull/423/files#diff-ec5029af9375d586748f8351a479ecfd940eb4a5be4dfebdf0e71b917365bd82 Well, I tried to build this locally to test the idea but I've run into a good few python errors after I managed to sort out some package BuildRequire errors.
This is the last one where it falls over:
File "/usr/lib/python3.13/site-packages/setuptools/_distutils/command/install_data.py", line 61, in run
if not os.path.isabs(dir):
~~~~~~~~~~~~~^^^^^
File "<frozen posixpath>", line 62, in isabs
TypeError: expected str, bytes or os.PathLike object, not tuple
error: subprocess-exited-with-error
× Building wheel for DisplayCAL (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /usr/bin/python3 /usr/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /home/bdm/rpmbuild/BUILD/DisplayCAL-3.9.14-build/DisplayCAL-3.9.14/.pyproject-builddir/tmpvf74y520
cwd: /home/bdm/rpmbuild/BUILD/DisplayCAL-3.9.14-build/DisplayCAL-3.9.14
Building wheel for DisplayCAL (pyproject.toml) ... error
ERROR: Failed building wheel for DisplayCAL
Failed to build DisplayCAL
ERROR: Failed to build one or more wheels
Maybe someone with better knowledge can get this working, it's beyond mine.
Earlier I added a link to a PR I made for the update, but I'll repeat it here for visibility: https://src.fedoraproject.org/rpms/DisplayCAL/pull-request/1 I had to update one patch, and drop one that was outdated, but I didn't see any errors like that. I should have just grabbed the scratch build instead of trying to fix it up myself. I think I managed to get one of the patches wrong somehow. In any case I have installed the scratch build and will report if it doesn't sort out the bug. And indeed, everything is now working normally again with the scratch build rpm installed. Run displaycal
Acquired lock file: <DisplayCAL.main.AppLock object at 0x7f988039acf0>
displaycal 3.9.12 2024-03-19T22:00:30Z
fedora 41 x86_64
Python 3.13.0 (main, Oct 8 2024, 00:00:00) [GCC 14.2.1 20240912 (Red Hat 14.2.1-3)]
Faulthandler
wxPython 4.2.1 gtk3 (phoenix) wxWidgets 3.2.5
Encoding: utf-8
File system encoding: utf-8
Loading /home/filippor/.config/DisplayCAL/DisplayCAL.ini
listening
writing to lock file: port: 15411
Traceback (most recent call last):
File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 536, in main
_main(module, name, app_lock_file_name)
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 521, in _main
from DisplayCAL.display_cal import main
File "/usr/lib64/python3.13/site-packages/DisplayCAL/display_cal.py", line 107, in <module>
from DisplayCAL import madvr
File "/usr/lib64/python3.13/site-packages/DisplayCAL/madvr.py", line 31, in <module>
from DisplayCAL import worker_base
File "/usr/lib64/python3.13/site-packages/DisplayCAL/worker_base.py", line 8, in <module>
import pipes
ModuleNotFoundError: No module named 'pipes'
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Traceback (most recent call last): â
â File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 536, â
â in main â
â _main(module, name, app_lock_file_name) â
â ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ â
â File "/usr/lib64/python3.13/site-packages/DisplayCAL/main.py", line 521, â
â in _main â
â from DisplayCAL.display_cal import main â
â File "/usr/lib64/python3.13/site-packages/DisplayCAL/display_cal.py", line â
â 107, in <module> â
â from DisplayCAL import madvr â
â File "/usr/lib64/python3.13/site-packages/DisplayCAL/madvr.py", line 31, â
â in <module> â
â from DisplayCAL import worker_base â
â File "/usr/lib64/python3.13/site-packages/DisplayCAL/worker_base.py", line â
â 8, in <module> â
â import pipes â
â ModuleNotFoundError: No module named 'pipes' â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Exiting displaycal
Ran application exit handlers
reporter: libreport-2.17.15
kernel: 6.11.5-300.fc41.x86_64
cmdline: /usr/bin/python3 -sP /usr/bin/displaycal-apply-profiles
cgroup: 0::/user.slice/user-1000.slice/user/app.slice/app-z\x2ddisplaycal\x2dapply\x2dprofiles
uid: 1000
reason: worker.py:15:<module>:ModuleNotFoundError: No module named 'pipes'
executable: /usr/bin/displaycal-apply-profiles
type: Python3
package: DisplayCAL-3.9.12-5.fc41
runlevel: N 5
exception_type: ModuleNotFoundError
crash_function: module
interpreter: python3-3.13.0-1.fc41.x86_64
For it's worth... From: https://docs.python.org/3.12/library/pipes.html pipes — Interface to shell pipelines Source code: Lib/pipes.py Deprecated since version 3.11, will be removed in version 3.13: The pipes module is deprecated (see PEP 594 for details). Please use the subprocess module instead. A quick look and found that pipes is used only here and called only once by the looks of things. This is for DisplayCAL-3.9.12:
worker.py:15:import pipes
worker_base.py:8:import pipes
worker_base.py:425: item = pipes.quote(item)
Pipes replacement is shlex.quote which is the same as pipes.quote which is deprecated after moving to shlex.
snippet
...
from shlex import quote
...
def cmd_quote(string):
import sys
if int(sys.version[2]) < 3:
import pipes
return pipes.quote(string)
else:
import shlex
return shlex.quote(string)
Any change that we get a fix for displaycal? Is any help needed? FEDORA-2025-1045fdae05 (DisplayCAL-3.9.14-1.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2025-1045fdae05 FEDORA-2025-1045fdae05 has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-1045fdae05` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-1045fdae05 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. I've installed 3.9.14-1 version, but after giving the following error message, it stays indefinitely on "Starting up" widget.
'WindowList_iterator' object is not iterable
Traceback (most recent call last):
File "/usr/lib64/python3.13/site-packages/wx/core.py", line 3427, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/display_cal.py", line 19520, in setup_frame
app.frame = MainFrame(self.worker)
~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/display_cal.py", line 1876, in __init__
self.set_child_ctrls_as_attrs(self)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/wxwindows.py", line 2346, in set_child_ctrls_as_attrs
for child in parent.GetAllChildren():
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib64/python3.13/site-packages/DisplayCAL/wxaddons.py", line 101, in GetAllChildren
children = [child for child in self.GetChildren() if child not in skip]
~~~~~~~~~~~~~~~~^^
TypeError: 'WindowList_iterator' object is not iterable
WARNING: Your version of wxPython (4.2.1) is outdated and no longer supported. You should consider updating to wxPython 4.2.2 or newer.
*** Bug 2339107 has been marked as a duplicate of this bug. *** I also tried version 3.9.14-1.fc41 and had exactly the same proble as Dmitry Burstein. Bug was noted at the source. Not sure if it's python 3.13 relate or such but a fix is noted at the link below. https://github.com/eoyilmaz/displaycal-py3/issues/474#issuecomment-2575975055 I used rpmrebuild to edit the noted python files which resolved the issue. Perhaps this breaks compatibility when not using python 3.13 or such, but it works on my current Bazzite build. Not sure if it's a fix at the source or perhaps warrants a patch to the rpm build. just started up my fedora workstation 41 and logged into account reporter: libreport-2.17.15 kernel: 6.13.4-200.fc41.x86_64 cmdline: /usr/bin/python3 -sP /usr/bin/displaycal-apply-profiles cgroup: 0::/user.slice/user-1001.slice/user/app.slice/app-gnome-z\x2ddisplaycal\x2dapply\x2dprofiles-2655.scope uid: 1001 reason: worker.py:15:<module>:ModuleNotFoundError: No module named 'pipes' executable: /usr/bin/displaycal-apply-profiles type: Python3 package: DisplayCAL-3.9.12-5.fc41 runlevel: N 5 exception_type: ModuleNotFoundError crash_function: module interpreter: python3-3.13.2-1.fc41.x86_64 comment: just started up my fedora workstation 41 and logged into account FEDORA-2025-ebb9d427b6 (DisplayCAL-3.9.15-2.fc42) has been submitted as an update to Fedora 42. https://bodhi.fedoraproject.org/updates/FEDORA-2025-ebb9d427b6 Tried out the above version, and at starting the calibration process, got the following error message:
Invalid format specifier '!r' for object of type 'str'
Traceback (most recent call last):
File "/usr/lib64/python3.13/site-packages/wx/core.py", line 3427, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/DisplayCAL/display_cal.py", line 10292, in start_measureframe_subprocess
f"sys.path.insert(0, {pydir:!r});"
^^^^^^^^^^
ValueError: Invalid format specifier '!r' for object of type 'str'
FEDORA-2025-1045fdae05 has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-1045fdae05` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-1045fdae05 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2025-ebb9d427b6 has been pushed to the Fedora 42 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-ebb9d427b6` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-ebb9d427b6 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2025-ebb9d427b6 (DisplayCAL-3.9.16-2.fc42) has been pushed to the Fedora 42 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2025-1045fdae05 has been pushed to the Fedora 41 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-1045fdae05` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-1045fdae05 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2025-1045fdae05 (DisplayCAL-3.9.16-2.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report. |