Bonjour,
voici un partage d'experience sur l'installation de Python sous Debian (Lenny dans mon cas, aujourd'hui au niveau "testing"). En effet python3.0.final ne s'installe pas correctement sans quelques librairies indispensables et patchs.
Tout d'abord le paquetage de python3.0 en Lenny n'existe pas encore, il faut donc utiliser le "tarball". Les dépendances et les défauts de jeunesses ne sont pas prises en compte, c'est l'objet de cette procédure de vous aider à corriger cette situation en attendant le paquetage.
Si vous ne désirez pas déstabiliser votre système ou perdre la gestion cohérente des dépendances et des paquetages je vous conseille l'installation parallèle à la version courante de la Lenny (2.5), dite "altinstall". Pourquoi ?
Retenez que la 3.0 ne fournit pas de compatibilitée ascendante, voir les nouveautés sur le site de python.
1/ Les principales librairies à installer sur la base d'une Debian faiblement équipée pour le développement. Utiliser un outil comme "apt-get install <paquetage>" ou similaire : tcl8.4-dev tk8.4-dev libreadline5-dev libssl-dev
libbz2-dev libsqlite3-dev libgdbm-dev
2/ Récupérer le tarball "Python-3.0.tar.bz2" et deux patchs indispensables respectivement pour la gestion des base "dbm" et une correction du setup.py sur les droits d'installations des librairies dynamiques : dbm.diff, setup_chmod.patch
N.B : un exemple de script en bash permet d'automatiser les étapes suivantes.
3/ Créer un répertoire temporaire, par exemple "/install" placer le tarball et les patchs. Détarrer le tarball "tar -xjf Python-3.0.tar.bz2". Vous trouverez dans "/python-3.0/README" les instructions d'installations (sans patch et en anglais)
4/ Aller dans le répertoire "Python-3.0" créé et appliquer les patchs :
"cd Python-3.0 ; patch -p0 < ../dbm.diff ; patch -p0 < ../setup_chmod.patch"
5/ Lancer le contrôle et la configuration avec les options proposées pour couvrir la plupart des besoins : "configure --with-doc-strings --enable-shared --enable-profiling --enable-ipv6 --with-threads --with-tsc --prefix=/usr". Vous remarquerez la surcharge du prefix indispensable à une installation conforme au standard Debian.
6/ Enfin les étapes classiques réunis en un seul paquet "make ; make test ; make altinstall". A noter :
- "make test" est optionnel mais vous permet de vérifier si certains modules ne peuvent être utilisés faute de librairies manquantes. Le test est très long, à titre estimatif il dure 10x les étapes précédentes.
- "make altinstall" permet l'installation de python-3.0 dans /usr/lib/python3.0, sans perturber /usr/lib/python2.5 existant.
7/ Il ne reste plus qu'à lançer python-3.0 par "python3.0". Ci-dessous un script qui renseigne les variables d'environnement pour faciliter l'exécution de python dans tous les cas :
#! /bin/bash
#### Launch Python 3000 ####
# the default search path for module files
export PYTHONPATH=/usr/lib/python3.0:~/python:/usr/lib/python3.0/lib-dynload:/usr/lib/python30.zip
# the location of the standard Python libraries
export PYTHONHOME=/usr/lib/python3.0
#the time module to require dates specified as strings to include 4-digit years
export PYTHONY2K=YES
# Turn on parser debugging output
#export PYTHONDEBUG=YES
# Print a message each time a module is initialized,
#showing the place (filename or built-in module) from which it is loaded
PYTHONVERBOSE=YES
/usr/bin/python3.0 $@
#fin
8/ N'hésitez pas à consulter la documentation pour en découvrir tous les usages sur le site officiel, les mises à jour sont très fréquentes.
Si cela ne suffisait pas, outre cet excellent forum dans la langue de Molière, vous pouvez utiliser sur irc.freenode.net, le canal python francophone #python-fr
Après ça vous n'aurez plus d'excuses pour ne pas vous mettre au Python 3000 sur votre Debian !
Enfin le script d'installation automatisé promis :
#! /bin/bash
# Compilation -> installation de python3.x
# Fichiers et repertoires pour la compilation
BASE=/install
BASELOG=$BASE/LOG
PATCH="dbm.diff setup_chmod.patch"
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:.
LANG=en_GB.UTF-8
HOME=/root
echo "Purge de l'existant"
rm -fr /usr/lib/python3.0
rm -fr $BASE/Python-3.0
echo "Preparation et application des patchs"
mkdir -p $BASELOG
cd $BASE
tar -xjf Python-3.0.tar.bz2
cd $BASE/Python-3.0
for p in $PATCH
do
patch -p0 < $BASE/$p
done
echo "Configure"
configure --with-doc-strings --enable-shared --enable-profiling --enable-ipv6 --with-threads --with-tsc --prefix=/usr
echo "make"
make > $BASELOG/make.log 2>&1
echo "installation"
make install > $BASELOG/install.log 2>&1
echo "test"
make test >$BASELOG/test.log
echo "python3.0 : fini !"
#############################################
Partager