Créer un module pour Python ( sous windows et en c ) ? - Python - Programmation
Marsh Posté le 02-04-2004 à 18:00:51
pyrex est différent.
swig est enfantin à utiliser !
un .i avec les prototypes
genre
int triple(int ); // swig génère la glue pour faire la transformation PyObject * <-> int
le.c
int triple(int i) { return i * 3; }
et voilà !
Marsh Posté le 02-04-2004 à 18:39:28
thx ca marche ^^ en partie
j'ai l'exception :
exceptions.TypeError:httpDec() argument 1 m
ust be string without null bytes, not str
char *httpDec(char* buff)
{
return "bippppp";
}
comment gérer en c pour utiliser des str sous python ?? L
Marsh Posté le 02-04-2004 à 18:42:12
?
const char * essaie puisque les chaines python sont immutables
Marsh Posté le 02-04-2004 à 18:42:44
et lis un peu la doc de l'api python pour voir comment on bricole un peu
(ça fait trop longtemps que j'ai pas utilisé swig, enfin je veux dire que depuis je m'occupe plus que du code, pas de la jointure)
Marsh Posté le 02-04-2004 à 19:26:37
en fait , j'ai rien vu de particulier :|
d'ailleurs vla deux lignes :
def decompress(self,buff):
print _example.httpDec( buff )
avec buff ca provoque l'erreur
(exceptions.TypeError:httpDec() argument 1 must be string without null bytes, not str
si je fais print _example.httpDec( "dtc" )
forcément ca marche
je sais pas quoa faire, un traitement particulier sur buff ?
UPDATE:
j'ai trouvé ce qu'il n'aime pas.
Dans la chaine que je lui envoie , une partie est compressée ( gzip ) , c'est cette partie qu'il ne supporte pas, surement à cause de
caractères spéciaux :|
une idée??
Marsh Posté le 02-04-2004 à 19:32:28
essaie de retourner un PyObject* et de jouer avec PyString_FromString
Marsh Posté le 02-04-2004 à 19:37:28
éventuellement .
UPDATE : non j'ai pas trouvé ^^
Marsh Posté le 02-04-2004 à 19:53:34
d'ailleurs, quand je fais un repr(buff)
j'ai plusieurs \x00 dedans, qui sont des char null super ^^
Marsh Posté le 02-04-2004 à 17:55:07
J'ai
- Windows XP,
- Python 2.3,
- DevC++ 5,
- Zlib.
et j'aimerais créer un module utilisant zlib, J'ai commencé
à lire des docs sur SWIG , Pyrex , API PYthon C , et je ne trouve
rien de bien intéressant ni fonctionnel.
Par exemple, l'example du tutorial Pyrex ne tourne que sous
linux.
Et SWIG ressemble à une usine à gaz :|
J'aimerais qqs examples de Module C dev sous windows afin de m'inspirer. merci !