Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/02/2009, à 20:59

Anium

Autotools : python

Bonsoir,

J'essaye d'utiliser les autotools pour un projet réalisé en python. Mais je bloque à un endroit.
Voici l'arborescence du projet :
./
  test/
  configure.in
  Makefile.am
  ..

test/
  mapping/
  ui/
  test.py
  Makefile.am
  ..

mapping/
*.py
  Makefile.am

ui/
  widget/
  window/
  __init__.py
  Makefile.am

etc ..

J'ai des erreurs dans tous les Makefile.am des sous-répertoires. Voici par exemple le Makefile.am de mapping

test_PYTHON =	\
	canplaysportclass.py \
	mapping.py \
	point.py \
	training.py \
	city.py \
        notice.py \
        sanction.py \
        typematch.py \
	club.py \
	notifiedplayer.py \
	sportclass.py \
	typesanction.py \
	__init__.py \
	notifiedsuperviser.py \
	sport.py \
	league.py \
	person.py \
        superviser.py \
 	mappingexception.py \
  	player.py \
	team.py

Et le makefile.am de test:

bin_SCRIPTS = test.py

testdir = $(prefix)/bin

test_PYTHON = 		\
	test_globals.py

uidir = $(datadir)/pycentrino
ui_DATA = pycentrino.glade

EXTRA_DIST =  			\
	$(bin_SCRIPTS) \
	$(test_PYTHON)


SUBDIRS = mapping output ui

J'ai ce genre d'erreur : test/mapping/Makefile.am:1: `test_PYTHON' is used but `testdir' is undefined

Je comprend bien qu'il ne trouve pas testdir mais je ne sais pas comment le renseigner.

Comment faire ? Merci d'avance.

Dernière modification par Anium (Le 22/04/2009, à 14:36)

Hors ligne

#2 Le 03/02/2009, à 22:03

Karl_le_rouge

Re : Autotools : python

Tu donnes toi-même la réponse.  À toi d'adapter si nécessaire.

libuzicdir = $(prefix)/bin

En même temps, tu te compliques un peu la vie en utilisant les autohell, Python fournit des outils de packaging nettement moins chiant.
http://ianbicking.org/docs/setuptools-presentation/
http://pypi.python.org/pypi/setuptools

Dernière modification par Karl_le_rouge (Le 03/02/2009, à 22:07)

Hors ligne

#3 Le 03/02/2009, à 23:51

human enemy

Re : Autotools : python

ou bien encore le module standard *distutils*
http://docs.python.org/distutils/


<linux user>463160</linux user>
str = g_strdup_printf ("ubuntu user : %d",20328);

Hors ligne

#4 Le 04/02/2009, à 02:57

Karl_le_rouge

Re : Autotools : python

setuptools étends distutils, ça rajoute des trucs sympas comme la gestion des dépendances, des versions multiples, modularisation des paquets à l'aide du namespace, mode développement.
De plus, distutils n'est plus vraiment maintenu et setuptools corrige pas mal de problèmes liés à ce module.

Hors ligne

#5 Le 04/02/2009, à 11:47

aleph2

Re : Autotools : python

> human enemy

> ou bien encore le module standard *distutils*

Distutils n'est pas fait pour le déploiement d'un module ou d'une application qu'un utilisateur / développeur a écrit pour un environnement Python mais pour le déploiement de modules / applications qui étendent l'environnement Python. Ces derniers se retrouvent dans site-packages.

C'est d'ailleurs ce qu'explique la première phrase de la doc Python (Py3)  concernant le module distutils.

Conceptuellement, il ne devrait quand même pas être très difficile à comprendre que si chaque développeur, celui qui écrit des applications pour un environnement Python (ex. utilisateurs de Python de ce forum) va mettre ses applications dans site-packages, cela va vite tourner au b*.

Exemples de ce que l'on trouve dans site-packages : numpy, numarray, PyQt, PIL (Python Imaging Library), wxPython, pygame... En gros, des extensions "d'un interêt général" pour qui développe des applications Python. A noter que tous ces modules / extensions sont généralement disponibles pour toutes les plateformes, ce qui montre bien la caractère "général" de ces modules et l'aspect "extension de l'environnement Python".

> Karl_le_rouge

> setuptools étends distutils, ça rajoute des trucs sympas comme la gestion des dépendances, des
> versions multiples, modularisation des paquets à l'aide du namespace, mode développement.

Petit complément pour éviter le confusion entre "applications *étendant* l'environnement Python" (1) et "applications *utilisant* l'environnement Python (2).

Dans le dernier cas (2), la gestion des dépendances est un problème inexistant sous Python puisque c'est à l'utilisateur / développeur de scripts Python que revient la tâche de définir les chemins de recherche de modules que ce soit dans le script qu'il développe ou par un complément d'information de son environnement Python. Ceci résout et annihile un éventuel problème de versions multiples et permet de jouer simplement avec plusieurs versions.

> De plus, distutils n'est plus vraiment maintenu...

N'exagérons pas. Le module distutils fait partie de "Python core".

#6 Le 04/02/2009, à 13:14

Karl_le_rouge

Re : Autotools : python

> N'exagérons pas. Le module distutils fait partie de "Python core".
C'est de la maintenance correctrice, distutils n'évolue plus alors qu'il est loin d'être satisfaisant dixit GvR himself.
Le problème, c'est que les core developers ont d'autres priorités, il faudrait qu'un core developper reprenne distutils (en pratique, l'arrivée d'un nouveau core developer) et que le travail soit fait dans le tronc.
Même si il y a pas mal de discussion sur le sujet, ça va prendre pas mal de temps, et setuptools est devenu un standard de fait parmi la communauté Python et le PyPI


http://mail.python.org/pipermail/distutils-sig/2008-September/010080.html

Hors ligne

#7 Le 04/02/2009, à 14:26

aleph2

Re : Autotools : python

> Karl_le_rouge

Je le sais très bien. distutils n'est pas si obsolète et a, d'ailleurs, été maintenu dans Python 3.