Créer un module pour Python ( sous windows et en c ) ?

Créer un module pour Python ( sous windows et en c ) ? - Python - Programmation

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 !
 
 

Reply

Marsh Posté le 02-04-2004 à 17:55:07   

Reply

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à !

Reply

Marsh Posté le 02-04-2004 à 18:39:28    

thx ca marche ^^ en partie :D
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 ?? :OL

Reply

Marsh Posté le 02-04-2004 à 18:42:12    

?
 
const char * essaie puisque les chaines python sont immutables

Reply

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)


Message édité par Taz le 02-04-2004 à 18:43:23
Reply

Marsh Posté le 02-04-2004 à 18:43:32    

oué je vais essayer :O

Reply

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 :o
 
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??


Message édité par BenO le 02-04-2004 à 19:32:06
Reply

Marsh Posté le 02-04-2004 à 19:32:28    

essaie de retourner un PyObject* et de jouer avec PyString_FromString

Reply

Marsh Posté le 02-04-2004 à 19:37:28    

éventuellement .
 
UPDATE : non j'ai pas trouvé ^^


Message édité par BenO le 02-04-2004 à 19:38:21
Reply

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 :p super ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed