Présentation
DisplayCAL est une interface graphique pour ArgyllCMS qui sert à calibrer des écrans. Ce sont tous les deux des logiciels libres.
Florian Höch, le développeur original de DisplayCAL pendant la pandémie, a perdu sa passion pour le projet. Le problème, c’est que le logiciel est écrit en Python 2, une version qui n’est plus supportée. Les distributions GNU/Linux ont toutes supprimé les unes après les autres Python 2 donc ont supprimé DisplayCAL de leurs dépôts. Le problème, c’est que c’est la seule solution abordable pour calibrer ses écrans avec une interface graphique sous GNU/Linux.
Erkan Ozgur Yilmaz sous le pseudo d’eoyilmaz a décidé de porter DisplayCAL en Python 3. Il y a quelques paquets disponibles, mais pas pour la majorité des distributions GNU/Linux, une installation à la main est toute foi possible et ce n’est pas très compliqué.
Changement de nom
DisplayCAL en Python 3 est un fork de DisplayCAL en Python 2. Même si le développeur original a abandonné le logiciel et ne répond pas aux sollicitations, il détient les droits sur le nom DisplayCAL jusqu’à 70 ans après sa mort.
DisplayCAL en Python 3 doit donc changer de nom.
Quand le changement de nom aura lieu, je ferai les changements dans cet article et j’écrirai un article pour vous l’annoncer.
Historique des versions
Pour être informé de nouvelles versions, allez sur la page dédiée :
https://github.com/eoyilmaz/displaycal-py3/releases
Vous pouvez ajouter cette adresse à votre lecteur de flux RSS pour être averti automatiquement de l’arrivée d’une nouvelle version.
- 3.9.14, le 16 octobre 2024.
- 3.9.13, le 10 octobre 2024.
- 3.9.12, le 19 mars 2024.
- 3.9.11, le 5 juin 2023.
- 3.9.10, le 22 novembre 2022.
- 3.9.9, le 21 novembre 2022.
- 3.9.8, le 15 septembre 2022.
- 3.9.7, le 8 août 2022.
- 3.9.6, le 12 juin 2022.
- 3.9.5, le 29 mai 2022.
- 3.9.4, le 16 mai 2022.
- 3.9.3, le 4 mai 2022.
- 3.9.2, le 30 avril 2022.
- 3.9.1, le 30 avril 2022.
GitHub du projet : https://github.com/eoyilmaz/displaycal-py3
N’oubliez pas d’installer ArgyllCMS.
Attention : avec Debian, le paquet ne s’appelle pas argyllcms
mais argyll
.
Pour Debian Stable, on m’a averti qu’il ne fonctionne pas avec DiplayCAL en Python 3 donc, téléchargez l’archive (c’est déjà compilé) de ArgyllCMS ici : Argyll_V2.3.1_linux_x86_64_bin-usr-local.tar.bz2. Pour l’installation, décompressez l’archive et copier tout ce qu’il y a dans le répertoire argyll_V2.3.1
dans le répertoire /usr/local/
.
Une documentation complète sur l’installation est disponible ici :
http://www.argyllcms.com/doc/Installing_Linux.html
Si vous avez un souci, laissez un commentaire en dessous de l’article ou contactez-moi en privé ici : https://ignace72.eu/contact et j’essaierai de vous dépanner.
Paquets disponibles
DisplayCAL en Python 3 est disponible avec votre gestionnaire de paquet pour les distributions suivantes (liste non exhaustive) :
ALT Sisyphus (3.9.12), ArchLinux (3.9.12), Debian 12 Bookworm (3.9.10), Debian Sid (3.9.13), Exherbo (3.9.12), Mageia Cauldron (3.9.12), Manjaro Linux (3.9.12), openSUSE Tumbleweed (3.9.10 paquets communautaires), Parabola (3.9.11), Rosa (3.9.4), Slackware (3.9.12), Solus (3.9.11).
Installation manuelle
Attention, je vous conseille de désinstaller le logiciel AVANT de mettre votre distribution à niveau et de le réinstaller après.
Installation des dépendances
Pour Debian, Mint et Ubuntu, vous devez installer les dépendances suivantes :
sudo apt-get install python3-pip python3-venv libgtk-3-dev libxxf86vm-dev libglib2.0-dev wxpython-tools git
Pour Mint et Ubuntu, vous devez installer la dépendance suivante en plus :
sudo apt install python3.12-venv
Pour Fedora, vous devez installer les dépendances suivantes :
sudo dnf install python3-devel libX11-devel gcc-c++ libXxf86vm-devel libXinerama-devel libXrandr-devel gtk3-devel git
Pour Mageia Linux 8, vous devez installer les dépendances suivantes :
dnf install python3-devel task-python3 gcc-c++ python3-pip lib64xxf86vm-devel git
Pour ArchLinux et Manjaro, vous devez installer les dépendances suivantes :
sudo pacman -S python-pip python-wxpython python-send2trash pkgconf make git
Pour openSUSE Leap 15.4, il faut installer Python 3.10, le mettre par défaut et installer les dépendances :
sudo zypper install python310 python310-devel python310-tools libXxf86vm-devel patterns-devel-base-devel_basis patterns-devel-python-devel_python3 libpng16-devel libjpeg8-devel lzlib-devel libtiff-devel libexpat-devel gtk3-devel git
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2000
sudo update-alternatives --install /usr/bin/pip3 pip3 /usr/bin/pip3.10 2000
Pour openSUSE Tumbleweed, vous devez installer les dépendances suivantes :
sudo zypper install libXxf86vm-devel patterns-devel-base-devel_basis patterns-devel-python-devel_python3 libpng16-devel libjpeg8-devel lzlib-devel libtiff-devel libexpat-devel gtk3-devel git
Installation
git clone https://github.com/eoyilmaz/displaycal-py3.git
cd displaycal-py3
make venv build install
Pour openSUSE
git clone https://github.com/eoyilmaz/displaycal-py3.git
cd displaycal-py3
make venv build install
Une fois DisplayCAL installé, tapez dans un terminal :
displaycal
Si vous sortez de l’environnement virtuel Python, vous ne pourrez plus lancer DisplayCAL, pour remédier à cela, il faut créer un script bash que voici :
#!/bin/bash
cd /home/USER/displaycal-py3
make launch
Remplacez USER
par le nom de votre répertoire personnel.
Pour openSUSE
#!/bin/bash
cd /home/USER/
python3 -m venv ./displaycal_venv
source ./displaycal_venv/bin/activate
cd ./displaycal-py3/
displaycal
Remplacez USER
par le nom de votre répertoire personnel.
Vous pouvez enregistrer ce script dans le répertoire bin
de votre répertoire personnel. Rendez ce script exécutable. Et, voilà (pour simplifier, vous pouvez créer un lanceur sur ce fichier).
Erreurs
Retourner à l’installation manuelle
Si vous avez l’erreur suivante :python : commande introuvable
Utilisez la commande python3 à la place.
Oupip : commande introuvable
Utilisez la commande pip3 à la place.
Si vous avez l’erreur suivante :python: No module named build
Installez le module avec : pip install build
Certaines autres erreurs peuvent être résolues en mettant à jour pip :pip install pip --upgrade
Bonjour,
Je viens d’essayer d’installer Displaycal sous ubuntu 22.04. L’installation se passe bien mais j’ai une erreur lorsque je lance le logiciel.
l’erreur ‘float’ object cannot be interpreted as an integer
Bonjour, Cheyrou.
Je suis en train d’installer DisplayCAL sur une XUbuntu dans une machine virtuelle Vituabox. Pour l’instant, ça compile.
J’ai regardé à quoi correspondait votre erreur et c’est un qu’un nombre entier est attendu alors que c’est un nombre à virgule qui est donné.
C’est une erreur qui m’étonne.
Je creuse la question et je vous tiens au courant.
============
Édition
============
DisplayCAL est installé et il se lance correctement. Je n’ai pas votre erreur.
Bonjour, Cheyrou.
Pouvez-vous mettre un commentaire avec la sortie complète du terminal, car les seules solutions que je trouve sur l’erreur que vous me dites sont de modifier le code pourtant le code est bon puisque ça fonctionne sur toutes les distributions GNU/Linux que j’ai testé.
Ce qui est le plus curieux, c’est que j’ai aussi testé avec une Xubuntu 22.04 et ça fonctionne chez moi.
J’ai testé avec un Xubuntu et pas avec une Ubuntu car je suis incapable de me servir de l’interface graphique de la Ubuntu.
Merci.
Bonjour et merci de vos réponses.
Après avoir eu des instabilités sur ubuntu 22.04 (dûe à ma carte graphique nvidia, semble-t-il…) j’ai du reinstaller mon système, avec la nouvelle version 22.04.1 qui semble stable maintenant (ouf !).
Et donc je viens d’essayer de réinstaller displaycal; pas de chance, parceque maintenant j’ai une erreur dès l’installation. Si vous avez des suggestions pour résoudre cette erreur…
voici le détail du déroulement de l’installation :
etape 1 (ok): sudo apt-get install python3-pip libgtk-3-dev libxxf86vm-dev libglib2.0-dev
Construction de l’arbre des dépendances… Fait
Lecture des informations d’état… Fait
Les paquets supplémentaires suivants seront installés :
build-essential dpkg-dev fakeroot g++ g++-11 gcc gcc-11 icu-devtools libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan6 libatk-bridge2.0-dev libatk1.0-dev libatomic1 libatspi2.0-dev libblkid-dev
libbrotli-dev libc-dev-bin libc-devtools libc6-dev libcairo2-dev libcc1-0 libcrypt-dev libdatrie-dev libdbus-1-dev
libdeflate-dev libegl-dev libegl1-mesa-dev libepoxy-dev libexpat1-dev libfakeroot libffi-dev libfontconfig-dev
libfontconfig1-dev libfreetype-dev libfreetype6-dev libfribidi-dev libgcc-11-dev libgdk-pixbuf-2.0-dev libgl-dev
libgles-dev libgles1 libglib2.0-dev-bin libglvnd-core-dev libglvnd-dev libglx-dev libgraphite2-dev libharfbuzz-dev
libharfbuzz-gobject0 libice-dev libicu-dev libitm1 libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblsan0
liblzma-dev libmount-dev libnsl-dev libopengl-dev libpango1.0-dev libpcre16-3 libpcre2-dev libpcre2-posix3
libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpng-tools libpthread-stubs0-dev libpython3-dev
libpython3.10-dev libselinux1-dev libsepol-dev libsm-dev libstdc++-11-dev libthai-dev libtiff-dev libtiffxx5
libtirpc-dev libtsan0 libubsan1 libwayland-bin libwayland-dev libx11-dev libxau-dev libxcb-render0-dev
libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev
libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxtst-dev linux-libc-dev
lto-disabled-list manpages-dev pango1.0-tools python3-dev python3-distutils python3-setuptools python3-wheel
python3.10-dev rpcsvc-proto uuid-dev wayland-protocols x11proto-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
Paquets suggérés :
debian-keyring g++-multilib g++-11-multilib gcc-11-doc gcc-multilib autoconf automake libtool flex bison gcc-doc
gcc-11-multilib gcc-11-locales glibc-doc libcairo2-doc libdatrie-doc freetype2-doc libgirepository1.0-dev
libglib2.0-doc libxml2-utils libgraphite2-utils libgtk-3-doc libice-doc icu-doc liblzma-doc libpango1.0-doc libsm-doc
libstdc++-11-doc libthai-doc libwayland-doc libx11-doc libxcb-doc libxext-doc graphicsmagick python-setuptools-doc
Les NOUVEAUX paquets suivants seront installés :
build-essential dpkg-dev fakeroot g++ g++-11 gcc gcc-11 icu-devtools libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan6 libatk-bridge2.0-dev libatk1.0-dev libatomic1 libatspi2.0-dev libblkid-dev
libbrotli-dev libc-dev-bin libc-devtools libc6-dev libcairo2-dev libcc1-0 libcrypt-dev libdatrie-dev libdbus-1-dev
libdeflate-dev libegl-dev libegl1-mesa-dev libepoxy-dev libexpat1-dev libfakeroot libffi-dev libfontconfig-dev
libfontconfig1-dev libfreetype-dev libfreetype6-dev libfribidi-dev libgcc-11-dev libgdk-pixbuf-2.0-dev libgl-dev
libgles-dev libgles1 libglib2.0-dev libglib2.0-dev-bin libglvnd-core-dev libglvnd-dev libglx-dev libgraphite2-dev
libgtk-3-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev libicu-dev libitm1 libjbig-dev libjpeg-dev
libjpeg-turbo8-dev libjpeg8-dev liblsan0 liblzma-dev libmount-dev libnsl-dev libopengl-dev libpango1.0-dev
libpcre16-3 libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev
libpng-tools libpthread-stubs0-dev libpython3-dev libpython3.10-dev libselinux1-dev libsepol-dev libsm-dev
libstdc++-11-dev libthai-dev libtiff-dev libtiffxx5 libtirpc-dev libtsan0 libubsan1 libwayland-bin libwayland-dev
libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev
libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev
libxrender-dev libxtst-dev libxxf86vm-dev linux-libc-dev lto-disabled-list manpages-dev pango1.0-tools python3-dev
python3-distutils python3-pip python3-setuptools python3-wheel python3.10-dev rpcsvc-proto uuid-dev wayland-protocols
x11proto-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
0 mis à jour, 125 nouvellement installés, 0 à enlever et 4 non mis à jour.
Il est nécessaire de prendre 81,8 Mo dans les archives.
Après cette opération, 318 Mo d’espace disque supplémentaires seront utilisés.
etape 2 (non ok): pip install displaycal
Defaulting to user installation because normal site-packages is not writeable
Collecting displaycal
Downloading DisplayCAL-3.9.7.tar.gz (10.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.7/10.7 MB 2.2 MB/s eta 0:00:00
Installing build dependencies … done
Getting requirements to build wheel … done
Installing backend dependencies … done
Preparing metadata (pyproject.toml) … done
Collecting Send2Trash
Downloading Send2Trash-1.8.0-py3-none-any.whl (18 kB)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from displaycal) (2020.6.20)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from displaycal) (1.21.5)
Collecting zeroconf
Downloading zeroconf-0.39.0-py3-none-any.whl (106 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.4/106.4 KB 2.0 MB/s eta 0:00:00
Requirement already satisfied: dbus-python in /usr/lib/python3/dist-packages (from displaycal) (1.2.18)
Collecting wxPython
Downloading wxPython-4.2.0.tar.gz (71.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.0/71.0 MB 2.0 MB/s eta 0:00:00
Preparing metadata (setup.py) … error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
Traceback (most recent call last):
File « <string> », line 2, in <module>
File « <pip-setuptools-caller> », line 34, in <module>
File « /tmp/pip-install-w_k1jbkj/wxpython_78915e77c39440e99240884d4195382b/setup.py », line 27, in <module>
from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
File « /tmp/pip-install-w_k1jbkj/wxpython_78915e77c39440e99240884d4195382b/buildtools/config.py », line 30, in <mod
ule>
from attrdict import AttrDict
ModuleNotFoundError: No module named ‘attrdict’
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Bonjour, cheyrou.
Merci pour votre retour.
Pour cette erreur, il est indiqué dans votre sortie de terminal :
Donc faites un :
L’installation devrait se dérouler correctement avec attrdict installé.
Bonjour,
Suivants votre conseil, j’ai bien installé attrdict mais l’installation bloque à nouveau. Voici ci dessous le message d’erreur:
p install displaycal
Defaulting to user installation because normal site-packages is not writeable
Collecting displaycal
Using cached DisplayCAL-3.9.7.tar.gz (10.7 MB)
Installing build dependencies … done
Getting requirements to build wheel … done
Installing backend dependencies … done
Preparing metadata (pyproject.toml) … done
Requirement already satisfied: Pillow in /usr/lib/python3/dist-packages (from displaycal) (9.0.1)
Requirement already satisfied: distro in /usr/lib/python3/dist-packages (from displaycal) (1.7.0)
Collecting build
Using cached build-0.8.0-py3-none-any.whl (17 kB)
Collecting wxPython
Using cached wxPython-4.2.0.tar.gz (71.0 MB)
Preparing metadata (setup.py) … error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [12 lines of output]
Traceback (most recent call last):
File « <string> », line 2, in <module>
File « <pip-setuptools-caller> », line 34, in <module>
File « /tmp/pip-install-by99j2sk/wxpython_a773678c6c134090b50f76d7c0604b48/setup.py », line 27, in <module>
from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
File « /tmp/pip-install-by99j2sk/wxpython_a773678c6c134090b50f76d7c0604b48/buildtools/config.py », line 30, in <module>
from attrdict import AttrDict
File « /home/cherob/.local/lib/python3.10/site-packages/attrdict/__init__.py », line 5, in <module>
from attrdict.mapping import AttrMap
File « /home/cherob/.local/lib/python3.10/site-packages/attrdict/mapping.py », line 4, in <module>
from collections import Mapping
ImportError: cannot import name ‘Mapping’ from ‘collections’ (/usr/lib/python3.10/collections/__init__.py)
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Re bonjour, cheyrou.
Là c’est facile, c’est l’erreur que j’ai indiquée à la fin du paragraphe « Installation » de mon article. Elle se résout en remplaçant la commande d’installation standard par la suivante (l’option sera aussi à utiliser aussi pour les futurs mises à jour) :
bonjour et merci pour votre aide. J’ai donc lancé la commande:
L’installation reste bloquée sur
Building wheel for wxPython (setup.py) …
voici le déroulement :
pip install displaycal –use-deprecated=backtrack-on-build-failures
Defaulting to user installation because normal site-packages is not writeable
DEPRECATION: Backtracking on build failures can mask issues related to how a package generates metadata or builds a wheel. This flag will be removed in pip 22.2. A possible replacement is avoidin
g known-bad versions by explicitly telling pip to ignore them (either directly as requirements, or via a constraints file). Discussion can be found at https://github.com/pypa/pip/issues/10655
Collecting displaycal
Using cached DisplayCAL-3.9.7-cp310-cp310-linux_x86_64.whl
Requirement already satisfied: dbus-python in /usr/lib/python3/dist-packages (from displaycal) (1.2.18)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from displaycal) (1.21.5)
Collecting zeroconf
Using cached zeroconf-0.39.0-py3-none-any.whl (106 kB)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from displaycal) (2020.6.20)
Collecting wxPython
Using cached wxPython-4.2.0.tar.gz (71.0 MB)
Preparing metadata (setup.py) … error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [12 lines of output]
Traceback (most recent call last):
File « <string> », line 2, in <module>
File « <pip-setuptools-caller> », line 34, in <module>
File « /tmp/pip-install-20_60eju/wxpython_54a5d16df6dd4762a0c923cf2c32da72/setup.py », line 27, in <module>
from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
File « /tmp/pip-install-20_60eju/wxpython_54a5d16df6dd4762a0c923cf2c32da72/buildtools/config.py », line 30, in <module>
from attrdict import AttrDict
File « /home/cherob/.local/lib/python3.10/site-packages/attrdict/__init__.py », line 5, in <module>
from attrdict.mapping import AttrMap
File « /home/cherob/.local/lib/python3.10/site-packages/attrdict/mapping.py », line 4, in <module>
from collections import Mapping
ImportError: cannot import name ‘Mapping’ from ‘collections’ (/usr/lib/python3.10/collections/__init__.py)
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
WARNING: Discarding https://files.pythonhosted.org/packages/d9/33/b616c7ed4742be6e0d111ca375b41379607dc7cc7ac7ff6aead7a5a0bf53/wxPython-4.2.0.tar.gz#sha256=663cebc4509d7e5d113518865fe274f77f95434
c5d57bc386ed58d65ceed86c7 (from https://pypi.org/simple/wxpython/) due to build failure: metadata generation failed
Using cached wxPython-4.1.1.tar.gz (66.0 MB)
Preparing metadata (setup.py) … done
Requirement already satisfied: Pillow in /usr/lib/python3/dist-packages (from displaycal) (9.0.1)
Collecting build
Using cached build-0.8.0-py3-none-any.whl (17 kB)
Requirement already satisfied: distro in /usr/lib/python3/dist-packages (from displaycal) (1.7.0)
Collecting PyChromecast
Using cached PyChromecast-12.1.4-py2.py3-none-any.whl (62 kB)
Collecting Send2Trash
Using cached Send2Trash-1.8.0-py3-none-any.whl (18 kB)
Collecting pep517>=0.9.1
Using cached pep517-0.13.0-py3-none-any.whl (18 kB)
Collecting tomli>=1.0.0
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting packaging>=19.0
Using cached packaging-21.3-py3-none-any.whl (40 kB)
Collecting protobuf<4,>=3.19.1
Using cached protobuf-3.20.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB)
Collecting casttube>=0.2.0
Using cached casttube-0.2.1-py3-none-any.whl (6.5 kB)
Collecting async-timeout>=4.0.1
Using cached async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting ifaddr>=0.1.7
Using cached ifaddr-0.2.0-py3-none-any.whl (12 kB)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from wxPython->displaycal) (1.16.0)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from casttube>=0.2.0->PyChromecast->displaycal) (2.25.1)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/lib/python3/dist-packages (from packaging>=19.0->build->displaycal) (2.4.7)
Building wheels for collected packages: wxPython
Building wheel for wxPython (setup.py) …
La compilation de wheel for wxPython (setup.py) prend BEAUCOUP de temps. On pourrait croire que c’est bloqué, mais non, ça compile. Il faut juste être patient. Tant que la barre (à droite de (setup.py)) tourne sur elle-même, c’est que tout va bien.
Il n’y a que sur une ArchLinux et une Manjaro Linux que la compilation de wheel for wxPython est TRÈS TRÈS rapide (quelques secondes).
Ok je vais relancer l’installation.
cordialement
Vous lancez l’installation puis regardez un bon film d’horreur pour patienter le temps que ça compile.
Pour les films d’horreur je ne suis pas trop amateur. J’ai préféré une balade. Et bien finalement, ça marche ! et j’ai pu enfin recalibrer mon écran.
Encore merci pour votre aide !
Les balades, c’est bien aussi.
Content que ça fonctionne maintenant.
Content d’avoir pu vous aider. Ça m’a fait plaisir. DisplayCAL en Python 3 est un projet qui me tient à cœur, car c’est la seule solution pour calibrer correctement ses écrans sous GNU/Linux. Étant photographe amateur, cette procédure est indispensable (que j’effectue tous les trois mois pour mes deux écrans).
N’étant pas programmeur, j’apporte ma contribution en aidant ceux qui veulent utiliser ce programme avec cet article ou sur des forums. La première position dans la recherche « DislpayCAL Python 3 » de cet article avec Google, Duckduckgo, Qwant ou Ask m’oblige à toujours garder cet article à jour. Je teste l’installation manuelle sur Manjaro, openSUSE Leap et Tumbleweed, Linux Mint et maintenant, grâce à vous Xubuntu à chaque nouvelle version du logiciel ou à chaque mise à niveau des distributions citée.
Bonjour, cheyrou.
J’ai des nouvelles à propos des erreurs que vous avez eu.
Ces deux erreurs viennent du fait que wxPython-4.2.0 est installé sur votre système.
Avec wxPython-4.2.0, pip réclame attrdict mais si vous l’installez, vous aurez l’erreur
error: metadata-generation-failed
.Il faut supprimer attrdict avec la commande suivante :
et installer attrdict3 avec la commande suivante :
Je viens de tester cette solution sur Linux Mint et sur Xubuntu et ça fonctionne. J’ai désinstallé et réinstallé DisplayCAL mais cela n’implique pas une compilation donc la réinstallation de DisplayCAL ne dure que quelques secondes.
Je suis désolé, je fais le tuto au fur et à mesure des informations que j’ai. Ce n’est que cette nuit que j’ai appris le pourquoi des deux erreurs.
La solution que je vous avais donnée, je l’avais trouvée en étant confronté au problème et j’avais trouvé cette solution en faisant mes recherches.
C’est en proposant ma solution cette nuit sur le GitHub du logiciel qu’on m’a expliqué que ma façon de faire n’est pas bonne.
J’espère que vous ne m’en tiendrez pas rigueur.
Avec mes sincères excuses.
J’ai remplacé attrdict par attrdict3 et effectivement la réinstallation de displaycal s’est déroulée sans erreur (et très rapidement). Bonne journée et barvo pour votre travail.
Content que ça se soit bien passé. Quand je disais que la réinstallation ne durait que quelques secondes, je n’avais pas menti.
C’est important pour moi d’avoir des retours.
Sauf pour la Manjaro de mon PC, je travaille avec DisplayCAL uniquement avec des machines virtuelles avec VirtualBox donc j’ai toujours un doute que ça fonctionne en MV et pas sur une installation réelle. C’est irraisonné, car il n’y a pas de raisons pour que les effets soient différents, mais je ne peux pas m’en empêcher.
Merci pour le compliment. Je fais de mon mieux. Cet article est l’élément le plus lu de mon site web donc c’est normal que j’y porte une attention particulière pour que les visiteurs puissent y trouver leur bonheur. Aussi, il est un des plus complets sur l’installation de DisplayCAL en Python 3 disponible sur le web en français. Il est utilisé sur de nombreux forums.
Que la licence de mes textes soit ouverte aide aussi. Je n’ai pas choisi une licence libre, car je ne veux pas qu’il y ait une réutilisation commerciale de mon travail (sauf accord ponctuel).
Bonne journée à vous aussi.
Bonjour,
J’ai trouvé votre page en cherchant une solution à mon problème qui est similaire à celui de Cheyrou.
Je suis sous Linux Mint 20.3 qui est basé sur Ubuntu 20.4.
Après installation des dépendences j
ai également une erreur indiquant que le module attrdict est introuvable.
pip install displaycal
Collecting displaycal
Downloading DisplayCAL-3.9.7.tar.gz (10.7 MB)
|████████████████████████████████| 10.7 MB 4.6 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing wheel metadata ... done
Requirement already satisfied: Pillow in /usr/lib/python3/dist-packages (from displaycal) (7.0.0)
Collecting build
Downloading build-0.8.0-py3-none-any.whl (17 kB)
Collecting PyChromecast
Downloading PyChromecast-12.1.4-py2.py3-none-any.whl (62 kB)
|████████████████████████████████| 62 kB 1.8 MB/s
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from displaycal) (2019.11.28)
Requirement already satisfied: zeroconf in /usr/lib/python3/dist-packages (from displaycal) (0.24.4)
Collecting numpy
Downloading numpy-1.23.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB)
|████████████████████████████████| 17.1 MB 10.7 MB/s
Collecting wxPython
Downloading wxPython-4.2.0.tar.gz (71.0 MB)
|████████████████████████████████| 71.0 MB 12.7 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fazd5t8q/wxPython/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fazd5t8q/wxPython/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-fazd5t8q/wxPython/pip-egg-info
cwd: /tmp/pip-install-fazd5t8q/wxPython/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-fazd5t8q/wxPython/setup.py", line 27, in <module>
from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
File "/tmp/pip-install-fazd5t8q/wxPython/buildtools/config.py", line 30, in <module>
from attrdict import AttrDict
ModuleNotFoundError: No module named 'attrdict'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Dabord j
avais aussi installé attrdict mais en trouvant votre commentaire la dessus je l
ai desinstallé :pip uninstall attrdict
Found existing installation: attrdict 2.0.1
Uninstalling attrdict-2.0.1:
Would remove:
/home/h/.local/lib/python3.8/site-packages/attrdict-2.0.1.dist-info/*
/home/h/.local/lib/python3.8/site-packages/attrdict/*
Proceed (y/n)? y
Successfully uninstalled attrdict-2.0.1
Pourtant depuis je l
ai bien installé :
pip install attrdict3
Collecting attrdict3
Downloading attrdict3-2.0.2-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from attrdict3) (1.14.0)
Installing collected packages: attrdict3
Successfully installed attrdict3-2.0.2
Alors je verifie :
pip3 install attrdict3
Requirement already satisfied: attrdict3 in ./.local/lib/python3.8/site-packages (2.0.2)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from attrdict3) (1.14.0)
Mais jobtiens toujours :
ModuleNotFoundError: No module named ‘attrdict’
J’espère que vous avez une solution à ce problème,
Merci beaucoup d’avance!
Bonsoir, Hubert.
Je ne suis pas certain que l’installation fonction avec Python 3.8.
Mes tests d’installation sur Linux Mint 21 fonctionne.
Je vous conseille de mettre à niveau votre Linux Mint vers la version 21 car je n’ai pas la place disque pour avoir des machines virtuelles des anciennes versions de toutes les distributions GNU/Linux.
Bonsoir,
Merci de votre conseil de mettre à niveau vers la version 21.
Cela a pris un petit moment mais je viens de le faire et avec succes!
Maintenant displaycal s`est installé sans problème.
Merci encore de votre travail!
Il est toujours préférable de garder sa distribution à niveau. Je sais que c’est fastidieux, mais c’est un passage obligé.
Oui, les mises à niveau sont chronophages, c’est pour ça que maintenant, je suis sur Manjaro Linux.
Je suis content pour vous que l’installation a fonctionné sur votre Linux Mint 21.
Pour les prochaines mises à niveau de Linux Mint, je vous conseille de désinstaller DisplayCAL avant et de le réinstaller après la mise à niveau.
Je ne l’avais pas fait quand j’ai fait la mise à niveau de ma machine virtuelle Linux Mint 20 et DisplayCAL ne voulait plus fonctionner et il m’était impossible de le désinstaller, j’ai dû réinstaller Linux Mint.
Que mon travail aide les autres m’apporte une pleine satisfaction.
Merci pour ce mode opératoire très clair.
Pour éviter la compilation pour wxPython qui prend BEAUCOUP de temps, sur Ubuntu, on peut installer le paquet wxpython-tools (avec sa dépendance python3-wxgtk4.0).
Je pense que sur les autres distrib, il existe des paquets équivalents pour le binding de wxgtk en python.
Bonsoir, chrisaga.
De rien.
Merci pour votre astuce.
Je vais tester ça et voir si ça peut s’appliquer aux autres distributions GNU/Linux.
Si ça pouvait fonctionner pour toutes les distributions, ce serait chouette.
Je n’ai pas le temps de tester ça de l’intégrer à mon article aujourd’hui ni demain, mais promis, je vais le faire bientôt.
Encore merci à vous.
Bonsoir, chrisaga.
Après presque une semaine sous la couette pour cause de maladie, j’ai pu modifier mon article pour intégré votre astuce.
Elle est valable pour Debian, Linux Mint et bien-sûr Ubuntu.
Je n’ai pas réussi à trouver les équivalences pour les distributions que j’utilise pour mon article (il manque toujours wxgtk).
Pour ArchLinux et Manjaro Linux, cette astuce n’est pas utile car pip n’a jamais eu besoin de compiler pour wxPython.
Au moins, ça ravira les adeptes des paquets deb.
Merci encore à vous pour l’astuce.
Bonjour,
je viens apporter mon expérience. Étant sous Debian 11 j’avais du mal à installer Displaycal – avant sous MInt 20.3, l’installation se faisait simplement avec un .deb-.
L’installation par compilation, comme vous le proposez est intéressante … mais j’avais un blocage sur la fin, visiblement il manquait une application : « python3-venv ». Après installation de ce fichier la compilation s’est terminée correctement.
Encore merci pour ce travail, la calibration sous Linux est un vrai plus pour tout photographe adepte du libre (Darktable pour les raw et GIMP pour les jpg !).
Bonjour, gete82.
Je vous remercie pour votre retour.
Je viens d’ajouter « python3-venv » aux dépendances sur ce tuto.
Je suis ravi que mon travail serve aux autres.
Je vous souhaite une belle journée.
Pour traiter mes photos, les plus jolies, je les transmets à un photographe professionnel qui aime cela plus que moi, car je n’éprouve aucun plaisir à traiter des photos.
Ce que j’adore, c’est prendre des photos et les regarder.
Ni plus, ni moins.
Bonjour,
J’ai installé DisplayCal 3 depuis quelques mois. aucun souci a la compilation et au lancement de DisplayCal.
Aujourd’hui, je lance la commande journalctl et je constate qu’ilme renvoie reguliérement des warnings
pourtant « /etc/xdg/autostart/z-displaycal-apply-profiles.desktop » existe…
comment corriger cette situation ?
Merci
janv. 25 08:30:27 mate-session[44076]: WARNING: Unable to find provider » of required component ‘dock’
janv. 25 08:30:27 mate-session[44076]: WARNING: could not read /etc/xdg/autostart/z-displaycal-apply-profiles.desktop
janv. 25 08:30:27 mate-session[44076]: GLib-GObject-CRITICAL: Custom constructor for class GsmAutostartApp returned NULL (which is invalid). Please use GInitable instead.
janv. 25 08:30:27 mate-session[44076]: GLib-GObject-CRITICAL: object GsmAutostartApp 0x55c98b9b6470 finalized while still in-construction
janv. 25 08:30:27 mate-session[44076]: WARNING: Could not parse desktop file /etc/xdg/autostart/z-displaycal-apply-profiles.desktop: Nom de clé non valide : Comment[%s]
janv. 25 08:30:27 mate-session[44076]: WARNING: could not read /etc/xdg/xdg-mate/autostart/z-displaycal-apply-profiles.desktop
janv. 25 08:30:27 mate-session[44076]: GLib-GObject-CRITICAL: Custom constructor for class GsmAutostartApp returned NULL (which is invalid). Please use GInitable instead.
janv. 25 08:30:27 mate-session[44076]: GLib-GObject-CRITICAL: object GsmAutostartApp 0x55c98b9a5190 finalized while still in-construction
janv. 25 08:30:27 mate-session[44076]: WARNING: Could not parse desktop file /etc/xdg/xdg-mate/autostart/z-displaycal-apply-profiles.desktop: Nom de clé non valide : Comment[%s]
Bonjour, Christian.
Je ne connais pas cette erreur. Pouviez-vous me donner votre distribution et sa version pour que j’essaye de reproduire l’erreur et quelle méthode d’installation avez-vous utilisée ?
bonsoir,
voici la version : System:
Kernel: 5.15.0-91-generic x86_64 bits: 64 compiler: gcc v: 11.4.0 Desktop: MATE 1.26.0
info: mate-panel wm: Metacity 3.44.0 dm: LightDM 1.30.0 Distro: Linux Mint 21.2 Victoria
base: Ubuntu 22.04 jammy
une précision :Displaycal3 se lance et fonctionne correctement malgré tout.
Christian
Bonsoir, Christian.
Merci pour ces informations.
J’ai quand même une question :
Pourquoi ne pas avoir fait la mise à jour vers Linux Mint 21.3 ?
Bonjour,
C’est prévu dans un avenir proche (fin fevrier/début mars)
j’attends toujours un à deux mois avant d’effectuer une mise a jour majeur.
cette erreur ne me pose pas de probléme a l’utilisation.
merci pour votre suivi.
Bonjour, Christian.
C’était juste que ma place pour les machines virtuelles est limitée.
Il vaut mieux faire une réinstallation manuelle après toutes mises à niveaux.