Un résumé de comment utiliser le module distutils..
Python 2.4
EN COURS DE REDACTION
1.Afficher la liste des commandes distutils disponibles
python setup.py --help-commands
build build everything needed to install
build_py "build" pure Python modules (copy to build directory)
build_ext build C/C++ extensions (compile/link to build directory)
build_clib build C/C++ libraries used by Python extensions
build_scripts "build" scripts (copy and fixup #! line)
clean clean up output of 'build' command
install install everything from build directory
install_lib install all Python modules (extensions and pure Python)
install_headers install C/C++ header files
install_scripts install scripts (Python or otherwise)
install_data install data files
sdist create a source distribution (tarball, zip file, etc.)
bdist create a built (binary) distribution
bdist_dumb* create a "dumb" built distribution
bdist_rpm* create an RPM distribution
bdist_wininst* create an executable installer for MS Windows
* On utilisera plutot la commande --format adjointe à bdist ou sdist
register register the distribution with the Python package index
2.Créer un package pour distribuer un module sous forme dite *binaire*
Commandes :
python setup.py --bdist ( format par défaut fichier zip )
python setup.py --bdist --formats=zip fichier zip
python setup.py --bdist --formats=wininst fichier windows installer
Liste des formats de distributions :
python setup.py --bdist --help-formats
3.Créer un package pour distribuer les sources d'un module
Commandes :
python setup.py --sdist ( format par défaut fichier zip )
python setup.py --sdist --formats=zip fichier zip
python setup.py --sdist --formats=wininst fichier windows installer
Liste des formats de distributions :
python setup.py --sdist --help-formats
Résultat :
Une arborescence contenant les sources du module
manifest (log d'exécution de la commande sdist)
dist\name-version\
package1\ (les différents packages embarqués)
package2\
PKG-INFO (fichier d'information constitué d'infos de setup.py)
setup.py (le fichier setup.py qui a été exécuté)
readme.txt (copie d'un fichier readme.txt si présent au meme niveau que setup.py)
Remarques :
- La commande sdist ne prend pas en compte les fichiers déclarés dans data_files
Le fichier setup.py des différents cas
from distutils.sysconfig import *
from distutils.core import setup
from glob import glob
import os
import sys
setup(name="VoileIRC-API",
version="0.36",
description="VoileIRC Packaging : API IRC",
author="NoMorgan",
author_email=
nomorgan@toto.com,
url=
http://www.toto.net/corailnumerique,
packages=["voileirc","voileirc.config","voileirc.error","voileirc.event","voileirc.irc",
"voileirc.log","voileirc.net","voileirc.security","voileirc.tools",
"voileirc.web","voileirc.ia"],
package_dir={"voileirc":"voileirc"},
data_files=[(get_python_lib().split(sys.prefix)[1] + "\\voileirc", ['voileirc/README.txt']), (get_python_lib().split(sys.prefix)[1] + "\\voileirc\\data", ['voileirc/data/log.ini','voileirc/data/test.xml'])] )
packages : Liste des modules et sous-modules concernés par la commande
package_dir : chemin depuis le répertoire courant, c-a-d celui où se trouve setup.py, pour trouver les différents modules cités dans packages. Si certains sont des sous-modules, il n'est nécessaire que de préciser le chemin du module parent.
data_files : Liste de fichiers considérés comme des données du module. (par exemple : fichier image, xml ..)