Aller au contenu

DisplayCAL est enfin disponible en python 3


invite36
Messages recommandés

Bonjour à tous et à toutes.

DisplayCAL en Python 3

displaycal.webp

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 de eoyilmaz a décidé de porter DisplayCAL en Python 3. Même si il reste quelques bogues, DisplayCAL est néanmoins utilisable. Vous pouvez donc l’utiliser sur votre distribution GNU/Linux préféré.
Il n’y a pas encore de paquets disponibles, mais une installation à la main est possible et ce n’est pas très compliqué.

Installation

Sous Debian, Ubuntu et Mint, installez les dépendances requises pour l’installation :

apt-get install build-essential dbus libglib2.0-dev pkg-config libgtkd-3-dev libxxf86vm-dev

Dans terminal, créez un répertoire displaycal dans votre répertoire Téléchargements et allez dedans.

mkdir Téléchagements/displaycal/
cd Téléchargements/displaycal/

Téléchargez les sources, créez un environnement virtuel et installez le logiciel :

git clone https://github.com/eoyilmaz/displaycal-py3
python -m venv ./displaycal_venv
source ./displaycal_venv/bin/activate
cd ./displaycal-py3/
pip install -r requirements.txt
python -m build
pip install dist/DisplayCAL-3.9.*.whl

Ça y est, DisplayCAL en Python 3 est installé.
Testez le logiciel avec la commande dans le même terminal :

displaycal

Le logiciel devrait démarrer.

displaycal-python-3-1024x841.webp DisplayCAL

Pour les utilisations suivantes, taper la commande displaycal ne fonctionnera pas car l’environnement n’est pas défini.

Pour remédier à cela, j’ai créé un script Shell. Ouvrez votre éditeur de texte préféré et copiez les lignes suivantes dedans :

#!/bin/shcd
cd Téléchargements/displaycal/
python -m venv ./displaycal_venv
source ./displaycal_venv/bin/activate
displaycal

Enregistrez le fichier dans le répertoire bin de votre dossier personnel sous le nom displaycal.sh.
Avec votre gestionnaire de fichiers, rendez ce fichier exécutable en faisant un clic droit sur le fichier, choisissez « Propriétés… » puis dans l’onglet « Permissions », dans la ligne « Programme », cochez « Autoriser ce fichier à être exécuté comme un programme ».
Testez votre fichier dans un terminal par :

bin/displaycal.sh

Plutôt que lancer DisplayCAL depuis un terminal, vous pouvez créer un lanceur.
La procédure peut changer suivant votre environnement de bureau.
Avec XFce, faites un clic droit sur votre bureau à un endroit vide et choisissez « Créer un lanceur… »
La fenêtre suivante s’ouvre :

creer-un-lanceur.webp Créer un lanceur

Dans le champ « Nom », mettez DisplayCAL.
Dans le champ « Commentaire », mettez une description du logiciel (ce n’est pas obligatoire).
Dans le champ « Commande », mettez bin/displaycal.sh
Laissez le champ « Répertoire de travail » vide.
À « Icône », cliquez sur « Pas d’icône » et sélectionnez l’icône qui est dans le répertoire « Téléchargements/displaycal/displaycal-py3/theme/icons/ ».
Vous pouvez laisser le lanceur sur le bureau ou le glisser-déposer sur un tableau de bord.

Ignace.

 

Lien vers le commentaire
Partager sur d’autres sites

 

Pourquoi est-ce que ce passage de Python 2 vers Python 3 est si important ?

Python 2 n'est plus supporté depuis 2020, ce qui veut dire qu'il n'y a plus de mises à jour depuis cette date, il n'y a même plus de mises à jour de sécurité ce qui veut dire que même s’il y a bogue découvert ou s’il y a une faille de sécurité, il n'y aura pas de correction, donc l'utilisation d'un logiciel utilisant Python 2 peut devenir problématique et même dangereux pour une faille de sécurité.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 

[b]Installation par un paquet avec Pacman pour ArchLinux et Manjaro Linux[/b]

Si vous voulez, vous pouvez installer cette version en un paquet pour Pacman car il est disponible dans les dépôts testing d’ArchLinux.
Sur Manjaro Linux, il manque trois dépendances : python-send2trash, python-wxpython et python-build qui sont disponibles ici :
https://archlinux.org/packages/community/any/python-send2trash/download

https://archlinux.org/packages/community/x86_64/python-wxpython/download

https://archlinux.org/packages/community/any/python-build/download
Installez-les avec

sudo pacman -U python-build-0.7.0-4-any.pkg.tar.zst python-send2trash-1.8.0-3-any.pkg.tar.zst python-wxpython-1\ 4.0.7.2-3-x86_64.pkg.tar.zst


En suite, allez sur cette page https://github.com/archlinux/svntogit-community/blob/packages/displaycal/trunk/PKGBUILD et copier le code du PKGBUILD que vous enregistrez dans un fichier du même nom.
Faites un makepkg.
Et installez le paquet produit avec un :

sudo pacman -U displaycal-3.9.2-1-x86_64.pkg.tar.zst


Voilà, pour lancer le programme, allez dans votre menu, catégorie « Graphisme » et cliquez sur « DisplayCAL ».

Ignace.

Modifié par ignace72
Lien vers le commentaire
Partager sur d’autres sites

 

D'après ce qu'on m'a dit, les trois paquets de dépendance ne doivent pas être installés séparément avec Manjaro Linux, car ils sont déjà présents dans les dépôts de Manjaro, donc je ne sais donc pas pourquoi j'ai eu un message d'erreur de dépendances non satisfaite de mon installateur.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 

et pour WIndaube, ya pas ?

Lien vers le commentaire
Partager sur d’autres sites

 

Bonjour, @carriole.

J'ai regardé et il y a aussi pour Mac OS mais je n'ai rien trouvé pour Windows, juste que c'est prévu. Le développeur n'ayant pas Windows, c'est donc plus long. Pour Mac OS, c'est plus facile, car c'est un OS de la famille des UNIX donc il y a beaucoup de point commun avec GNU/Linux.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 
Il y a 2 heures, ignace72 a dit :

Bonjour, @carriole.

J'ai regardé et il y a aussi pour Mac OS mais je n'ai rien trouvé pour Windows, juste que c'est prévu. Le développeur n'ayant pas Windows, c'est donc plus long. Pour Mac OS, c'est plus facile, car c'est un OS de la famille des UNIX donc il y a beaucoup de point commun avec GNU/Linux.

Ignace.

ok merci pour l'info

Lien vers le commentaire
Partager sur d’autres sites

 
Club photo

Merci Ignace pour ces infos ! 

Lien vers le commentaire
Partager sur d’autres sites

 

Bonjour, @Xavier11100.

De rien c'est un plaisir car c'est un projet qui me tiens à cœur car c'est le seule logiciel de calibration d'écrans abordable (il coûte pas un sous) disponible sous GNU/Linux.

Pour l'installer dans le répertoire /opt/ (ce qui est plus sécuritaire) :
https://ignace72.eu/displaycal-en-python-3.html#installation-depuis-le-site-officiel-repertoire-opt

La version 3.9.3 est sorti il y a 4 heures.
Liste des changements :

* Corrigé #97 https://github.com/eoyilmaz/displaycal-py3/issues/97
* Fixé gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkSpinButtonerreurs dans synthicc.xrc.
* Supprimé libgtkd-3-devdépendance, qui devrait être une faute de frappe et non nécessaire pour DisplayCAL.
* Fixé gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkSpinButtonerreurs dans 3dlut.xrc.
* Remplacement de toutes les concaténations de chaînes par des commandes de format sur les chemins de code possibles pour corriger le #86 https://github.com/eoyilmaz/displaycal-py3/issues/86.
* Modifications appliquées manuellement de #99 https://github.com/eoyilmaz/displaycal-py3/pull/99 de @gavtroy.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 

Attention : l'étape de construction du logiciel est longue, vous pourriez croire que l'installation est plantée, mais il n'en est rien si la barre tourne même lentement. Le processus utilise tous les cœurs de votre processeur.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 
 
  • 2 weeks later...
 
  • 2 weeks later...
 

La procédure d’installation est maintenant sans compilation.

Vous faites une des deux commandes suivantes dans un terminal :

pip install displaycal

ou

sudo pip install displaycal

Pour openSUSE Leap 15.3, il faut installer Python 3.9 et l’activer par défaut :

sudo zypper install python39 python39-devel python39-tools
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2000
sudo update-alternatives --install /usr/bin/pip3 pip3 /usr/bin/pip3.9 2000
Et faire en suite un :
pip3 install displaycal

Le lanceur se trouve dans votre menu Applications, rubrique : Graphisme à : DisplayCAL.

Ignace.
Modifié par ignace72
Lien vers le commentaire
Partager sur d’autres sites

 
 
 
  • 2 weeks later...
 
  • 1 month later...

Bonjour,

Je suis sous mint 20.

Voulant installer displaycal, j'ai suivi les recommandations ci-dessus en remplaçant "python" par "python3".

J'ai un message d'erreur après la commande :

sudo pip install displaycal

Building wheels for collected packages: displaycal
  Building wheel for displaycal (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /tmp/tmp1bfgbbub build_wheel /tmp/tmp9gy51j3r
       cwd: /tmp/pip-install-rxdw05k4/displaycal
  Complete output (134 lines):
  ['bdist_wheel', '--dist-dir', '/tmp/pip-wheel-biba1vkf/tmpwqouuj_5']
  *** /tmp/tmp1bfgbbub bdist_wheel --dist-dir /tmp/pip-wheel-biba1vkf/tmpwqouuj_5
  using distutils
  desktopfile: /tmp/pip-install-rxdw05k4/displaycal/DisplayCAL/../misc/displaycal.desktop
  desktopfile: /tmp/pip-install-rxdw05k4/displaycal/DisplayCAL/../misc/displaycal-3dlut-maker.desktop
  ...

si quelqu'un a une idée, je suis preneur ...

merci; Gérard.

Lien vers le commentaire
Partager sur d’autres sites

 

J'ai re-cherché et j'ai trouvé cette commande qui me fait passer l'étape :

pip install --upgrade pip setuptools wheel testresources

* trouvé ici https://github.com/pydata/bottleneck/issues/281

Mais j'ai maintenant d'autres erreurs plus loin ! Peut-être dues à l'environnement cinnapmon ....?

      running build_ext
      building 'DisplayCAL.lib64.python38.RealDisplaySizeMM' extension
      creating build/temp.linux-x86_64-cpython-38
      creating build/temp.linux-x86_64-cpython-38/DisplayCAL
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DUNIX -I/mnt/DATA/DISTRIB/GRAPHISME/displaycal/displaycal_venv/include -I/usr/include/python3.8 -c DisplayCAL/RealDisplaySizeMM.c -o build/temp.linux-x86_64-cpython-38/DisplayCAL/RealDisplaySizeMM.o
      DisplayCAL/RealDisplaySizeMM.c:31:11: fatal error: X11/extensions/dpms.h: Aucun fichier ou dossier de ce type
         31 | # include <X11/extensions/dpms.h>
            |           ^~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
      /tmp/pip-build-env-7xxujes2/overlay/lib/python3.8/site-packages/setuptools/config/setupcfg.py:463: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
        warnings.warn(msg, warning_class)
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for displaycal
  Building wheel for dbus-python (setup.py) ... error
  error: subprocess-exited-with-error

 

Lien vers le commentaire
Partager sur d’autres sites

 

Bonsoir, gerori.

Depuis la version 1.9.5, tu n’as plus besoin de passer par la commande python ou python3.

Il est toujours préférable de passer par les paquets de ta distribution plutôt que de passer par pip pour installer des modules Python quand les paquets sont disponibles.

La nouvelle procédure est la suivante (testé sur une Mint 20 dans une machine virtuelle (je viens de tester à l’instant)) :

sudo apt-get install python3-pip libgtk-3-dev libxxf86vm-dev libglib2.0-dev

pip install displaycal

Mettre :

export PATH=/home/$USER/.local/bin:$PATH

à la fin du fichier .bashrc . Se déconnecter et se reconnecter.

Voilà.

Dans ton retour du terminal il est indiqué que tu n’as pas installé toutes les dépendances, car pip ne trouve pas une librairie de développement lié à X11 et la commande GCC.

Avant de faire l’installation, il faut bien lire tout le fil, car ne pouvant modifier le message décrivant la procédure, elle se retrouve périmée. Pour trouver la procédure à jour, le mieux est d’aller sur ma page (https://ignace72.eu/displaycal-en-python-3.html), car elle contient les procédures à jour.

Ignace.

Lien vers le commentaire
Partager sur d’autres sites

 
Rejoindre la conversation

Vous pouvez répondre à ce message et vous enregistrer plus tard. Si vous avez un compte, Connectez-vous pour répondre avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Restaurer la mise en forme

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
  • Créer...