lundi, avril 04, 2005

Installation d'une plateforme de dev MSYS-MinGW


En quelques points résumés, la facon d'installer un environnement de développement complet sur windows..


1.Procédure d'installation d'une plateforme de développement MSYS/MINGW


Installation de MingGW
URL : http://www.mingw.org
Fichier : MinGW-3.1.0-1.exe
Folder : X:\mingw


Installation MSYS
URL : http://www.mingw.org
Info : Environnement posix sous win32 pour execution de script. Repose sur MingW
Fichier : MSYS-1.0.10.exe
Folder : X:\msys


Installation de MSYS Developer Tool Kit
URL : http://www.mingw.org/
Info : Divers outils supplémentaires dont automake, autoconf, libtool, autogen, guile, cvs, openssl, openssh, inetutils,perl ..
Fichier : msysDTK-1.0.1.exe
Folder : X:\msys

2.Exemple d'IDE Open-Source


Bloodshed Dev-C++
URL : http://www.bloodshed.net/devcpp.html
Fichier : devcpp-4.9.9.2_nomingw_setup.exe



3.Ressources



Mingw32 packages repository
URL : https://sourceforge.net/projects/mingwrep/
Info : Packages de librairies open-source compilées pour MinGW


GnuWin32
URL : http://gnuwin32.sourceforge.net/
Info : Fournit Win32 (MS Windows 95 / 98 / ME / NT / 2000 / XP) ports of tools with a GNU or similar open source license.


4.Divers


Chemin de recherche de gcc sous msys-mingw:
gcc -print-search-dirs

vendredi, mars 04, 2005

Python Distutils

 


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 ..)