[Pyrex] Accéder à l'API de Lotus Domino
Le
jeremy
Bonjour
Tout d'abord je tiens à préciser que ce que je cherche à faire est
simplement dans le but d'apprendre à utiliser pyrex, et pour cela
j'essaye de l'utiliser sur un API qui me serait eventuellement utile.
Je cherche à accéder à l'api c++ de lotus domino depuis des scripts python.
Je suis totalement débutant en C++ (j'ai à peine quelques notions de C)
Actuellement j'essaye de mettre au point le script de setup mais je
n'arrive pas.
Pour le moment la seule chose que je cherche à faire est de compiler un
module qui ne fait rien.
Je veux juste le compiler avec l'entête lncppapi.h
Si je lance le setup j'ai droit à un beau :
d:otescpp\include\lnglosym.h(67) : fatal error C1189: #error : ERROR:
No plat
form specified.
error: command '"D:\microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe"'
failed wi
th exit status 2
J'ai donc recherché sur google et j'en ai conclus qu'il fallait que
j'ajoute la ligne :
define_macros=[("W32",None)],
mais dans ce cas j'ai droit à un très beau (si si j'insiste) :
C:\Python24\lib\distutils\dist.py:236: UserWarning: Unknown
distribution option:
'define_macros'
j'avoue que je suis un peu perdu quelqu'un voit il ce que je foire ?
###############setup.py#################
from distutils.core import setup
from distutils.extension import Extension
from Pyrex.Distutils import build_ext
setup(
name = 'notes',
ext_modules=[Extension("notes",["notes.pyx"]),],
include_dirs=["d:\otescpp\\include\\"],
define_macros=[("W32",None)],
cmdclass = {'build_ext': build_ext}
)
###############Notes.pyx#################
C:\temp\pyrex\Pyrex-0.9.3.1\Demos>type notes.pyx
cdef extern from "lncppapi.h":
pass
cdef class Lotus:
def __new__(self):
self.amount = 0
def __dealloc__(self):
print self.amount, "plus de lotus"
def describe(self):
print self.amount, "Module API Lotus"
Tout d'abord je tiens à préciser que ce que je cherche à faire est
simplement dans le but d'apprendre à utiliser pyrex, et pour cela
j'essaye de l'utiliser sur un API qui me serait eventuellement utile.
Je cherche à accéder à l'api c++ de lotus domino depuis des scripts python.
Je suis totalement débutant en C++ (j'ai à peine quelques notions de C)
Actuellement j'essaye de mettre au point le script de setup mais je
n'arrive pas.
Pour le moment la seule chose que je cherche à faire est de compiler un
module qui ne fait rien.
Je veux juste le compiler avec l'entête lncppapi.h
Si je lance le setup j'ai droit à un beau :
d:otescpp\include\lnglosym.h(67) : fatal error C1189: #error : ERROR:
No plat
form specified.
error: command '"D:\microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe"'
failed wi
th exit status 2
J'ai donc recherché sur google et j'en ai conclus qu'il fallait que
j'ajoute la ligne :
define_macros=[("W32",None)],
mais dans ce cas j'ai droit à un très beau (si si j'insiste) :
C:\Python24\lib\distutils\dist.py:236: UserWarning: Unknown
distribution option:
'define_macros'
j'avoue que je suis un peu perdu quelqu'un voit il ce que je foire ?
###############setup.py#################
from distutils.core import setup
from distutils.extension import Extension
from Pyrex.Distutils import build_ext
setup(
name = 'notes',
ext_modules=[Extension("notes",["notes.pyx"]),],
include_dirs=["d:\otescpp\\include\\"],
define_macros=[("W32",None)],
cmdclass = {'build_ext': build_ext}
)
###############Notes.pyx#################
C:\temp\pyrex\Pyrex-0.9.3.1\Demos>type notes.pyx
cdef extern from "lncppapi.h":
pass
cdef class Lotus:
def __new__(self):
self.amount = 0
def __dealloc__(self):
print self.amount, "plus de lotus"
def describe(self):
print self.amount, "Module API Lotus"

Poser une question


Ma réponse est donc totalement hors sujet...
Je la donne quand même.
Parmi nos outils, nous utilisons avec succès les objets COM de Lotus
Notes, via le module win32com.
Et mis à part la syntaxe python, le code (surtout les appels aux
fonctions) ressemble furieusement au langage LotusScript...
Si nécessaire, je peux poster des exemples.
--
Amaury
Il me semble que tu as mis define_macros au mauvais endroit :
tu l'as mis comme argument à setup(), alors que c'est plutôt une option
de l'Extension().
Essaie quelque chose comme ceci:
setup(
name = 'notes',
ext_modules=[Extension("notes",
["notes.pyx"],
define_macros=[("W32",None)]),
],
include_dirs=["d:\notescpp\include\"],
cmdclass = {'build_ext': build_ext}
)
Bien vu c'était bien ca
Pour ce qui est de COM je l'utilise déjà mais, ayant à intervenir autant
sur linux que sur windows, je cherche quelque chose de plus global.
Merci Beaucoup
Jérémy