fr . comp . lang . python


Service Usenet Gratuit - You The Net .Com Consultez les groupes de news usenet nntp avec www.youthenet.com Postez et suivez voos fils de discussions gratuitement avec you the net .com le service gratuit de news en ligne

Liaison statique avec libpython sur Fr Comp Lang Python



Groupes les plus fournis
soc religion misc handicap lettres ecriture soc histoire antique politique france sci maths comp infosystemes www navigateurs sci philo comp text tex rec sport cyclisme usenet abus d bio medecine comp os linux debats rec plongee comp sys mac soc sectes comp ordinosaures rec photo numerique rec sport rugby rec moto


Derniers posts youthenet
Que pensez-vous de la doctrine de James Madison ? Re: envoi des données à un serveur html la demeure du chaos Re: Alice au pays de Free (d'après la t ribune) Re: Est-ce ue violation de la GPL? Re: L'ultra libéralisme du chemin de fer prôné par Sarkozy... Président langue de bois ? la compagnie de l'autre

actualité

APAX : Python pour les développements Silverlight
Journal du Net - 9 juin 2008
Microsoft continue l'enrichissement de Silverlight en permettant l'utilisation de Python côté client pour le développement d'applications riches. ...
Silverlight 2 pourra être programmé en Ruby ou Python LeMondeInformatique
Silverlight 2 Beta 2 Génération NT
3 autres articles
source

actualité

Monty Python : sacré Sahara !
20minutes.fr - 3 juin 2008
Ce soir, à 20 h 50, la chaîne Voyage programme la première partie du documentaire « Un Monty Python au Sahara ». Dans cette série, Michael Palin, ...
source

Accueil |  Ajouter aux Favoris |  Inscription |  connexion |  Flux RSS de fr.comp.lang.python |

fr . comp . lang . python

Liaison statique avec libpython



accueil . fr . comp . lang . python




Liaison statique avec libpython

   
Sujet: Liaison statique avec libpython
De: invalid (l' arobase) nowhere.invalid.org (Alex Marandon)
Groupes: fr.comp.lang.python
Date: 16. May 2008, 17:54:17
Bonjour,

Je travaille sur un petit module en C qui embarque l'interpréteur Python. J'arrive à lier mon code avec la bibliothèque partagée sans soucis particulier (en utilisant les options renvoyées par python2.5-config --ldflags).

Pour d'obscures raisons de compatibilité avec un logiciel propriétaire, j'essaie de lier mon code statiquement a la bibliothèque Python, en utilisant le .a qui se trouve sur ma Debian. J'ai écrit un petit programme de test pour vous montrer où je veux en venir :


#include <Python.h>

int main(int argc, char *argv[]) {
     if (argc < 2) return(1);
     Py_Initialize();
     PyRun_SimpleString(argv[1]);
     Py_Finalize();
     return 0;
}


Avec une liaison dynamique, tout ce passe bien:

$ make
gcc -c -Wall `python2.5-config --cflags` -o t_python.o t_python.c
gcc `python2.5-config --ldflags` -o t_python t_python.o
$ ./t_python 'print "plop"'
plop
$ ./t_python 'from datetime import datetime; print datetime.now()'
2008-05-16 16:38:24.012268

Par contre en se liant avec le .a, voici ce qui se passe:

$ gcc -Wall t_python.o /usr/lib/python2.5/config/libpython2.5.a \
-o t_python -lpthread -ldl -lutil -lm
/usr/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_tmpnam':
(.text+0x581): warning: the use of `tmpnam_r' is dangerous, better use `mkstemp'
/usr/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_tempnam':
(.text+0x66f): warning: the use of `tempnam' is dangerous, better use `mkstemp'

Il y a des avertissements, mais l'éxécutable a bien été généré. Par contre à l'éxécution :

$ ./t_python 'print "plop"'
plop
$ ./t_python 'from datetime import datetime; print datetime.now()'
Traceback (most recent call last):
   File "<string>", line 1, in <module>
ImportError: /usr/lib/python2.5/lib-dynload/datetime.so: undefined symbol: PyExc_IOError

Voila ou j'en suis.

Je fournis aussi le Makefile de base si vous souhaitez reproduire cela chez vous :

$ cat Makefile
CC=gcc
CFLAGS=-Wall `python2.5-config --cflags`
LDFLAGS=`python2.5-config --ldflags`

t_python: t_python.o
        $(CC) $(LDFLAGS) -o $@ $?

t_python.o: t_python.c
        $(CC) -c $(CFLAGS) -o $@ $?


Bravo et merci de m'avoir lu :-)


Date Sujet  Auteur
16.05. o Liaison statique avec libpythonAlex Marandon
Derniers articles
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs soc politique rec animaux lettres ecriture bio medecine rec moto rec sport rugby rec photo numerique sci sociologie comp os linux debats

Derniers messages
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs comp os linux debats soc politique sci philo rec animaux rec plongee rec photo numerique bio medecine rec arts litterature lettres ecriture

actualité

APAX : Python pour les développements Silverlight
Journal du Net - 9 juin 2008
Microsoft continue l'enrichissement de Silverlight en permettant l'utilisation de Python côté client pour le développement d'applications riches. ...
Silverlight 2 pourra être programmé en Ruby ou Python LeMondeInformatique
Silverlight 2 Beta 2 Génération NT
3 autres articles
source

actualité

Sortie officielle de Iron Python 1.0
Maroc IT - 12 juin 2008
Sortie officielle de Iron Python, v1.0, permettant de compiler/executer du code python sur une machine virtuelle .net ' autant personellement je n'aime pas ...
source


 




Copyright 2008 ©  - YouTheNet.com

| mal aliento |