2. Utilisation de Python sur les plateformes Unix

2.1. Récupérer et installer la dernière version de Python

2.1.1. Sur Linux

Python est préinstallé sur la plupart des distributions Linux, et est disponible en paquet sur toutes les autres. Cependant, il y a certaines fonctionnalités que vous pourriez vouloir utiliser qui ne sont pas disponibles dans le paquet de votre distribution. Vous pouvez compiler la dernière version de Python depuis les sources.

Dans le cas où Python n'est pas préinstallé et n'est pas disponible dans les dépôts, vous pouvez faire les paquets pour votre propre distribution. Jetez un œil à ces liens :

2.1.2. Sur FreeBSD et OpenBSD

  • Utilisateurs de FreeBSD, pour installer le paquet, utilisez :

    pkg install python3
    
  • Utilisateurs d'OpenBSD, pour installer le paquet, utilisez :

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
    

    Par exemple les utilisateurs d'i386 récupèrent la version 2.5.1 de Python en faisant :

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
    

2.2. Compiler Python

Si vous voulez compiler CPython vous-même, la première chose à faire est de récupérer le code source. Vous pouvez télécharger la dernière version ou faire un clone. (Si vous voulez contribuer à des correctifs, il vous faut un clone.)

La compilation s'effectue avec les commandes habituelles :

./configure
make
make install

Les options de configuration et mises en garde pour certaines plateformes Unix spécifiques sont largement documentées dans le fichier README.rst à la racine du dossier des sources Python.

Avertissement

make install peut écraser ou cacher le binaire python3. make altinstall est donc recommandé à la place de make install puisqu'il installe seulement exec_prefix/bin/pythonversion.

2.4. Divers

Pour utiliser facilement des scripts Python sur Unix, vous devez les rendre exécutables, par exemple avec

$ chmod +x script

et mettre un shebang approprié en haut du script. Un bon choix est généralement

#!/usr/bin/env python3

qui cherche l’interpréteur Python dans le PATH complet. Cependant, certains systèmes Unix peuvent ne pas avoir la commande env, donc vous devrez littéralement écrire /usr/bin/python3 en tant que chemin d’interpréteur.

Pour utiliser des commandes shell dans vos scripts Python, regardez le module subprocess.

2.5. Version personnalisée d'OpenSSL

  1. Pour compiler avec votre propre configuration d'OpenSSL et le magasin des certificats de confiance du système, commencez par trouver le sous-dossier de /etc qui contient le fichier ou le lien symbolique openssl.cnf. Sur la plupart des distributions, c'est soit /etc/ssl, soit /etc/pki/tls. Ce dossier doit également contenir un fichier cert.pem ou un sous-dossier certs (ou les deux).

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Téléchargez et compilez OpenSSL. Installez-le, en prenant bien garde de le faire avec la cible install_sw et non pas install. En effet, install réécrirait le fichier openssl.cnf.

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
    $ tar xzf openssl-VERSION
    $ pushd openssl-VERSION
    $ ./config \
        --prefix=/usr/local/custom-openssl \
        --libdir=lib \
        --openssldir=/etc/ssl
    $ make -j1 depend
    $ make -j8
    $ make install_sw
    $ popd
    
  3. Ensuite, compilez Python avec votre version d'OpenSSL personnalisée (voir les options --with-openssl et --with-openssl-rpath du script configure).

    $ pushd python-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/python-3.x.x
    $ make -j8
    $ make altinstall
    

Note

Les versions d'OpenSSL dans une même série (incrémentation du troisième chiffre) conservent la compatibilité de l'interface binaire. Pour mettre à jour OpenSSL, il n'y a pas besoin de recompiler Python, il suffit de remplacer l'installation d'OpenSSL avec la nouvelle version.