Installation de PySide : compilation et binaires

| traducteur : Thibaut Cuvelier | Qt Developer Network |

L'installation de PySide est généralement très simple. Cet article vous montre les différentes manières de l'installer : que ce soit par le biais de binaires précompilés ou par la compilation, la majorité des systèmes d'exploitation supportés actuellement sont présentés.

Cet article est une traduction de plusieurs pages du wiki du Qt Developer Network.

Commentez !

- Titre : Installation de PySide : compilation et binaires

- Auteurs : traducteur : Thibaut Cuvelier, Qt Developer Network

- Parution : 18 décembre 2010

- Mise à jour : 24 juin 2011

- Licence : Creative Commons Attribution-ShareAlike 2.5 Generic

Sommaire

- I. Articles originaux

- II. Introduction

- II-A. Vue d'ensemble de PySide

- III. Utilisation des binaires sous Windows

- III-A. Installateurs

- III-B. Setuptools

- IV. Compilation sous Windows

- IV-A. Prérequis

- IV-B. Script de compilation

- IV-C. Créateur de paquet

- IV-D. Compilation manuelle

- V. Utilisation des binaires sous Linux

- V-A. Ubuntu

- V-B. Debian

- V-C. OpenSUSE

- V-D. ArchLinux

- V-E. Fedora

- V-F. Mandriva

- VI. Compilation sous Linux

- VI-A. Script de compilation

- VI-B. Compilation manuelle

- VI-B-1. Prérequis

- VI-B-2. Sources

- VI-B-3. Compilation et installation

- VI-B-3-a. Dans un bac à sable

- VI-B-3-b. Compilation

- VI-B-4. Scripts pratiques

- VII. Utilisation des binaires sous Mac OS X

- VIII. Compilation sous Mac OS X

- VIII-A. Sources

- VIII-B. Prérequis

- VIII-C. Compilation

- IX. Utilisation des binaires sous MeeGo

- X. Utilisation des binaires sous Maemo

- XI. Remerciements

I - Articles originaux

Le Qt Developer Network est le site d'entraide entre les développeurs utilisant Qt promu par Nokia.

Nokia, Qt, Qt Quarterly et leurs logos sont des marques déposées de Nokia Corporation en Finlande et/ou dans les autres pays. Les autres marques déposées sont détenues par leurs propriétaires respectifs.

Cet article est une adaptation en langue française des articles Building PySide on Microsoft Windows, PySide Binaries for Microsoft Windows, Building PySide on Mac OS X, PySide Binaries for Mac OS X, Building PySide on Linux, PySide Binaries for Linux, PySide Binaries for MeeGo et PySide Binaries for Maemo, ainsi que des sujets sur des listes de diffusion de PySide Re: [PySide] Windows GIT Head build et [PySide] OSX 10.6, Apple Python, Qt 4.6.2

Cet article est une traduction d'articles parus sur le Qt Developer Network, rédigés par un collectif de personnes. Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia ou aux auteurs des articles.

II - Introduction

PySide est un binding Python de Qt, initié par Nokia afin d'offrir un binding de qualité sous licence LGPL (le binding historique, PyQt, n'étant disponible que sous la GPL ou une licence commerciale payante). Depuis, le binding a bien évolué et est maintenant aussi capable que son grand frère, notamment en matière d'interfaces déclaratives avec Qt Quick et le QML.

Avant toute chose, cependant, il vous faut l'installer. La manipulation est généralement simple, quelle que soit la plateforme sur laquelle vous travaillez.

Ce recueil d'articles est séparé en plusieurs pages, chacune traitant d'une seule et unique plateforme, pour la simplicité d'organisation. Tant que cela est possible, deux possibilités sont montrées : l'utilisation de binaires tout faits et la compilation manuelle.

Notez que l'on considérera que vous avez Python installé sur votre machine, en version 2.6 ou 2.7. Vous pouvez le télécharger sur le site officiel.

II-A - Vue d'ensemble de PySide

PySide consiste en une chaîne de quatre paquets interdépendants :

- la bibliothèque API Extractor library est utilisée par les générateurs de bindings pour parser les en-têtes et les fichiers de système de type pour créer une représentation interne de l'API ; elle se base sur QtScriptGenerator ;

- le Generator Runner (aussi connu sous le nom de generatorrunner) est le programme qui contrôle le processus de génération de binding selon les règles données par l'utilisateur dans les en-têtes, les fichiers de système de type et les front-ends (comme Shiboken Generator) ; il dépend de la bibliothèque API Extractor ;

- le Shiboken Generator (aussi connu sous le patronyme de shiboken) est le plug-in qui crée les fichiers source des bindings PySide grâce aux en-têtes et aux fichiers auxiliaires (systèmes de types, global.h et un peu de colle) ; il dépend du Generator Runner et de la bibliothèque API Extractor ;

- les bindings PySide Qt (plus connus sous le nom de pyside) sont les définitions des systèmes de types et le code-lien qui permet la génération des modules du binding Python Qt en utilisant la chaîne d'outils PySide ; ils dépendent des bibliothèques Shiboken et du Generator Runner.

Il y a aussi un paquet optionnel, pyside-tools, qui fournit quelques outils utiles pour créer des applications avec PySide.

III - Utilisation des binaires sous Windows

Sous Windows, deux options coexistent pour l'installation de PySide sans devoir effectuer la moindre compilation : soit l'utilisation d'installeurs, soit l'utilisation des setuptools.

III-A - Installateurs

Commencez par télécharger l'installateur qui convient à votre version de Python. Lancez-le et suivez les instructions. Il effectuera de lui-même toutes les opérations de post-installation nécessaires.

III-B - Setuptools

Tout d'abord, si vous n'avez pas installé les setuptools, il faut les télécharger sur le site de l'éditeur. Prenez le paquet qui convient à votre version de Python et suivez les instructions de l'installateur.

Une fois les setuptools installés et le PATH mis à jour, utilisez cette commande pour installer le paquet de PySide :

easy_install PySide

Une fois cette installation finie, vous devez lancer les scripts de post-installation (remplacez le dossier de Python de cette commande par celui de votre installation) :

c:\Python27\python.exe c:\Python27\Scripts\pyside_postinstall.py -install

Remarquez que cela n'est pas nécessaire par les installateurs, car ils effectuent cette opération automatiquement.

IV - Compilation sous Windows

IV-A - Prérequis

Quelques programmes sont prérequis pour que la compilation se passe sans souci :

- Microsoft Visual Studio (une édition Express suffit) ;

- Git ;

- CMake ;

- Inno Setup.

Une fois tous ces outils installés, utilisez un shell Visual Studio (disponible dans votre menu Démarrer) et configurez votre PATH pour que les autres outils soient aussi disponibles :

set PATH=%PATH%;C:\chemin\vers\git
set PATH=%PATH%;C:\chemin\vers\cmake
set PATH=%PATH%;C:\chemin\vers\inno\setup

Si votre PATH est bien configuré, vous devriez pouvoir lancer ces commandes sans souci :

git
cmake
nmake
iscc

IV-B - Script de compilation

Un script JavaScript est disponible pour vous aider à compiler PySide (il suffit de le lancer et de le laisser faire). Vous pouvez le télécharger sur Gitorious. Il télécharge automatiquement les sources, les compile et crée un fichier de configuration utilisé par Inno Setup pour créer l'installateur, le tout en une seule étape.

Pour le lancer, dans le prompt déjà lancé :

cscript createpackage.js

IV-C - Créateur de paquet

Cette méthode permet d'éviter certaines dépendances, comme Git ou Inno Setup. Visual C++ ainsi que CMake sont cependant toujours nécessaires.

Téléchargez le créateur de paquet. Il contient toutes les sources nécessaires mais n'est pas toujours disponible pour les dernières versions de PySide, particulièrement si elles ne sont pas finales.

Ensuite, dans le prompt déjà lancé, utilisez ces quelques commandes selon vos objectifs :

Lancer la compilation sans paramètre

c:\Python27\python.exe create_package.py --qmake=c:\Qt\4.7.0\bin\qmake.exe

Lancer la compilation et télécharger les sources depuis Git

c:\Python27\python.exe create_package.py --qmake=c:\Qt\4.7.0\bin\qmake.exe --download

Vérifier l'environnement

c:\Python27\python.exe create_package.py --qmake=c:\Qt\4.7.0\bin\qmake.exe --check-environ

Montrer tous les paramètres

c:\Python27\python.exe create_package.py --help

Une fois la compilation effectuée, les binaires devraient être présents dans un dossier dist.

Cette méthode est aussi valable pour toutes les plateformes supportées nativement.

IV-D - Compilation manuelle

Cette méthode permet aussi d'éviter certaines dépendances, comme Git ou Inno Setup. Visual C++ ainsi que CMake sont cependant toujours nécessaires.

Commencez par télécharger les sources de PySide : soit les paquets de sources d'une certaine version, soit les dernières versions des repositories. Vous aurez besoin de apiextractor, generatorrunner, shiboken, pyside et pyside-tools (ci-après, les modules). C'est dans cet ordre que vous devrez les compiler.

Quelques dépendances sont optionnelles : libxml2 et libxslt. Vous pouvez les obtenir précompilées ou bien en sources adaptées à Visual C++ grâce au projet KDE Windows Initiative. Veillez à ce qu'elles soient accessibles au compilateur grâce aux variables d'environnement %LIB% et %INCLUDE%.

Afin de faciliter les écritures, définissez les variables d'environnement suivantes avec les valeurs qui correspondent à votre système :

set QT_PATH=C:\Qt\4.7.1\bin\
set QMAKE=%QT_PATH%qmake.exe
set PYTHON_EXEC=C:\Python27\bin\python.exe
set PYTHON_INC=C:\Python27\inc
set PYTHON_LIB=C:\Python27\libs\python27.lib
set OUTPUT=C:\PySide\

Pour chacun des modules, lancez cette instruction de configuration (le caractère ^ permet d'écrire une seule ligne de commande avec plusieurs retours à la ligne, pour plus de lisibilité) :

cmake -G NMake Makefiles -DQT_QMAKE_EXECUTABLE=%QMAKE% -DBUILD_TESTS=False ^
-DPYTHON_EXECUTABLE=%PYTHON_EXEC% -DPYTHON_INCLUDE_DIR=%PYTHON_INC% -DPYTHON_LIBRARY=%PYTHON_LIB% ^
-DCMAKE_BUILD_TYPE=Release  ..

Pour la compilation de generatorrunner, vous devrez ajouter un paramètre, ce qui fait que la commande devient :

cmake -G NMake Makefiles -DQT_QMAKE_EXECUTABLE=%QMAKE% -DBUILD_TESTS=False ^
-DPYTHON_EXECUTABLE=%PYTHON_EXEC% -DPYTHON_INCLUDE_DIR=%PYTHON_INC% -DPYTHON_LIBRARY=%PYTHON_LIB% ^
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=yes  ..

Ensuite, compilez :

nmake

Vous pouvez tester :

ctest

Finalement, installez dans le dossier de sortie précédemment défini (vous devez bien sûr avoir les droits d'écriture dessus) :

nmake install/fast

Une fois les cinq paquets compilés, lancez la post-installation :

python.exe pyside_postinstall.py -install

V - Utilisation des binaires sous Linux

La méthode est ici des plus simples : utilisez votre gestionnaire de paquets. Si aucun paquet n'est disponible pour votre distribution, vous devrez compiler PySide vous-même.

V-A - Ubuntu

Au moment de la rédaction, des paquets à jour étaient disponibles pour Lucid (10.04) et Maverick (10.10). Un repository PPA est disponible pour Ubuntu ; pour l'utiliser, dans un shell :

sudo add-apt-repository ppa:pyside
sudo apt-get update

Ensuite, installez les paquets :

sudo apt-get install python-pyside

Si vous n'avez besoin que d'un module en particulier (les dépendances seront installées automatiquement) :

sudo apt-get install python-pyside.qtgui

V-B - Debian

Si vous utilisez Sid (instable), effectuez cette commande en tant que root :

apt-get install python-pyside

V-C - OpenSUSE

Pour OpenSUSE 11.2, effectuez ces commandes en tant que root :

zypper ar http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/ shiboken/openSUSE_11.2/ pyside
zypper refresh pyside
zypper install python-pyside

V-D - ArchLinux

Pour installer les binaires PySide depuis les repositories Git, ajoutez ceci dans votre fichier /etc/pacman.conf :

[pyside]
Server = http://dev.archlinux.org/~douglas/repo/x86_64/pyside

Ensuite, installez PySide :

sudo pacman -S pyside-git pyside-tools-git

V-E - Fedora

Sous Fedora 13 ou plus récent :

yum install python-pyside

V-F - Mandriva

Pour Mandriva 2010, effectuez ces quelques opérations :

urpmi.addmedia pyside:devel http://download.opensuse.org/repositories/home:/ cgoncalves:/pyside:/shiboken/Mandriva_2010/home:cgoncalves:pyside:shiboken.repo
urpmi.update -a
urpmi python-pyside

VI - Compilation sous Linux

VI-A - Script de compilation

Quelques scripts de compilation sont disponibles sur Gitorious, ils permettent d'automatiser les étapes de compilation décrites dans la section suivante. Ils installent aussi les dépendances pour votre distribution.

Récupérer toutes les sources

git clone git://gitorious.org/pyside/buildscripts.git

Installer les dépendances (changer le nom du script en fonction de votre distribution)

sudo ./dependencies.ubuntu.sh

Lancer la compilation

./build_and_install

Pour utiliser le résultat de cette compilation, commencez toujours par cette commande pour définir les variables d'environnement nécessaires :

source /path/to/environment.sh

VI-B - Compilation manuelle

VI-B-1 - Prérequis

Quelques programmes sont prérequis pour que la compilation se passe sans souci :

- CMake (en version 2.6 ou plus récente) ;

- Qt (bibliothèques et en-têtes pour le développement ; version 4.6 au minimum, de préférence la dernière version stable) ;

- libxml2 (avec les en-têtes ; version 2.6.32 ou plus ; uniquement pour apiextractor) ;

- libxslt (avec les en-têtes ; version 1.1.19 ou plus ; uniquement pour apiextractor) ;

- Python (bibliothèques et en-têtes pour le développement ; version 2.5 au minimum ; pour shiboken et pyside).

VI-B-2 - Sources

Récupérez les sources nécessaires grâce à Git :

git clone git://gitorious.org/pyside/apiextractor.git
git clone git://gitorious.org/pyside/generatorrunner.git
git clone git://gitorious.org/pyside/shiboken.git
git clone git://gitorious.org/pyside/pyside.git
git clone git://gitorious.org/pyside/pyside-tools.git

Vous pouvez aussi récupérer des archives des sources.

VI-B-3 - Compilation et installation

VI-B-3-a - Dans un bac à sable

Si vous souhaitez compiler PySide dans un bac à sable sans qu'il vienne interférer avec quoi que ce soit d'autre, suivez cette section ; sinon, passez-la.

En considérant que PYSIDESANDBOXPATH est le chemin dans lequel se situe votre bac à sable :

export PYSIDESANDBOXPATH=$HOME/sandbox

Il faut maintenant ajuster les variables d'environnement en conséquence.

export PATH=$PYSIDESANDBOXPATH/bin:$PATH
export PYTHONPATH=$PYSIDESANDBOXPATH/lib/python2.6/site-packages:$PYTHONPATH
export LD_LIBRARY_PATH=$PYSIDESANDBOXPATH/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$PYSIDESANDBOXPATH/lib/pkgconfig:$PKG_CONFIG_PATH
alias runcmake='cmake .. -DCMAKE_INSTALL_PREFIX=$PYSIDESANDBOXPATH -DCMAKE_BUILD_TYPE=Debug -DENABLE_ICECC=0'

Il est préférable de mettre toutes ces déclarations dans un fichier de script que vous appellerez à chaque fois que vous souhaitez utiliser cette version de PySide précisément (particulièrement si vous avez une autre version installée).

À la prochaine étape, remplacez cmake par runcmake et sudo make install par make install.

VI-B-3-b - Compilation

Pour chaque paquet téléchargé, dans l'ordre préconisé (apiextractor, generatorrunner, shiboken, pyside), lancez ces commandes :

mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

Et c'est tout ! PySide devrait être installé !

VI-B-4 - Scripts pratiques

Ces quelques scripts peuvent vous être utiles, plus particulièrement si vous souhaitez être en phase avec la branche principale de PySide.

pull_all.sh

#!/usr/bin/env bash

alldirs=("apiextractor" "generatorrunner" "shiboken" "pyside" "pyside-mobility")

if [ $# == 0 ] ; then
dirs=("${alldirs[@]}")
else
dirs=("$@")
fi

for d in "${dirs[@]}" ; do
(cd "$d"
git pull origin master
) # exit from "$d"
done

build_all.sh

#!/usr/bin/env bash

alldirs=("apiextractor" "generatorrunner" "shiboken" "pyside")

if [ $# == 0 ] ; then
dirs=("${alldirs[@]}")
else
dirs=("$@")
fi

for d in "${dirs[@]}" ; do
rm -rf "$d/build"
mkdir -p "$d/build"
(cd "$d/build"
cmake ..  && make -j4 && sudo make install || exit 1
) # exit from "$d/build"
done

Ou bien en un seul script :

alter_pull_build_all.sh

#!/usr/bin/env bash
# modified from http://lynxline.com/superhybrids-part-2-now-qt-pyside/

git clone git://gitorious.org/pyside/apiextractor.git
cd apiextractor
mkdir build && cd build
cmake .. && make && make install && cd ../..

git clone git://gitorious.org/pyside/generatorrunner.git
cd generatorrunner
mkdir build && cd build
cmake .. && make && make install && cd ../..

git clone git://gitorious.org/pyside/shiboken.git
cd shiboken
mkdir build && cd build
cmake .. && make && make install && cd ../..
sudo ldconfig

git clone git://gitorious.org/pyside/pyside.git
cd pyside
mkdir build && cd build
cmake .. && make && make install && cd ../..
sudo ldconfig

git clone git://gitorious.org/pyside/pyside-tools.git
cd pyside-tools
rm -rf build
mkdir build && cd build
cmake .. && make && make install && cd ../..

VII - Utilisation des binaires sous Mac OS X

Un paquet expérimental existe pour PySide 1.0.0-beta1, OSX 10.6, Apple Python 2.6, Qt 4.7.1 (version officielle), avec les outils et support de QML.

Vous pouvez télécharger le paquet et l'installer comme suit :

sudo installer -pkg <filename> -target "/"

Ces fichiers seront installés.

VIII - Compilation sous Mac OS X

La compilation de PySide sur Mac OS X, comme sur toutes les autres plateformes, utilise CMake.

VIII-A - Sources

Commencez par télécharger les sources : soit un paquet, soit les dernières sources.

VIII-B - Prérequis

Vous aurez besoin des outils suivants :

- XCode ;

- CMake (version 2.6 au minimum, il a été reporté que la 2.8.2 ne fonctionne pas) ;

- Qt (en version 4.6 au moins, la plus récente est la mieux) ;

- Python (au moins en version 2.5 ; pour shiboken et pyside).

Vous pouvez installer ceux-ci :

- Git (pour télécharger les sources) ;

- libxml2 (pour la documentation avec apiextractor ; version 2.6.32 au minimum) ;

- libxslt (pour la documentation avec apiextractor ; version 1.1.19 au minimum).

VIII-C - Compilation

Pour PySide 0.4.2, vous aurez besoin de deux patchs pour que la compilation se passe sans encombre. Installez-les comme suit :

wget http://www.pyside.org/files/0.4.2-patches/0001-Fix-plugin-compilation.patch
wget http://www.pyside.org/files/0.4.2-patches/0002-Removed-QML-enum-from-QtCore-typesystem.patch
patch -p0 < 0001-Fix-plugin-compilation.patch
patch -p0 < 0002-Removed-QML-enum-from-QtCore-typesystem.patch

Pour chaque paquet téléchargé, dans l'ordre préconisé (apiextractor, generatorrunner, shiboken, pyside), lancez ces commandes :

mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

Si vous souhaitez installer PySide dans un répertoire différent de ce qui est proposé par défaut, vous devez spécifier cet emplacement comme suit :

export DYLD_LIBRARY_PATH=~/work/install/lib

IX - Utilisation des binaires sous MeeGo

Depuis MeeGo 1.2 pour N900, les dépôts de PySide et de PythonQtMobility sont activés par défaut et les paquets sont préinstallés.

Sur les autres plateformes, il faut ajouter le dépôt public :

sudo zypper addrepo http://repo.pub.meego.com/Project:/DE:/Trunk:/Testing/standard/ de-trunk-testing

Puis installer les paquets de Pyside et de QtMobility :

sudo zypper install python-pyside
sudo zypper install python-qtmobility

X - Utilisation des binaires sous Maemo

Certains paquets ne sont pas disponibles ! En effet, leur équivalent C++ n'est pas disponible sur cette plateforme dans les paquets officiels. Ces paquets sont QtHelp, QtScriptTools et QUiTools.

Pour installer les paquets Maemo sur le N900, ajoutez au fichier /etc/apt/sources.list cette ligne :

deb http://repository.maemo.org/extras-devel/ fremantle free non-free

Ensuite, installez PySide après une mise à jour de la base de données :

apt-get update
apt-get install python-pyside

Vous pouvez aussi installer les paquets de PySide Mobility :

apt-get install python-qtmobility

XI - Remerciements

Merci à Jiyuu et jacques_jean pour leur relecture !

Au nom de toute l'équipe Qt, j'aimerais adresser le plus grand remerciement à Nokia pour nous avoir autorisé la traduction de cet article !