Hola a todos, estoy desarrollando una aplicacion que necesito abrir un
documento de word, reemplazar ciertas palabaras y luego generar una
salida rtf con la libreria que viene con web2py en su núcleo.
He logrado ejecutar web2py desde las fuentes, tambien puede intalar la
libreria win32 para menejar office, pero cuando hago una prueba para
abrir un docuento de word y luego procesarlo me sale un error que
ahora al fina lo pongo. El ejemplo que sigo es buscar y reemplazar con
una funciona que funciona bien en el python instalado en mi portatil,
pero cuando lo ejecuto en web2py es que sale este error:
La última linea es el tema, CoInitialize
Traceback (most recent call last):
File "C:\web2pyFuente\gluon\restricted.py", line 188, in restricted
exec ccode in environment
File "C:/web2pyFuente/applications/welcome/controllers/default.py",
line 80, in <module>
File "C:\web2pyFuente\gluon\globals.py", line 124, in <lambda>
self._caller = lambda f: f()
File "C:/web2pyFuente/applications/welcome/controllers/default.py",
line 16, in index
a = win32com.client.Dispatch("Word.Application")
File "C:\Python26\lib\site-packages\win32com\client\__init__.py",
line 95, in Dispatch
dispatch, userName =
dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python26\lib\site-packages\win32com\client\dynamic.py",
line 108, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python26\lib\site-packages\win32com\client\dynamic.py",
line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx,
pythoncom.IID_IDispatch)
com_error:
(-2147221008, 'No se ha llamado a CoInitialize.', None,
None)
Sigo..., si me funciona lo que quiero hacer, pero una sola vez pero
cuando de nuevo lo ejecuto me aparece el error en custion, buscando
por microsoft (en su api de office 2003), CoInitialize dice que sirve
para iniciar un objeto COM en un nuevo hilo, mi conclusion es que no
lo logra reiniciar a cero y por eso se queda. Gracias de antemano
(puse toda la trasa en el error por si las dudas), el ejemplo que
funciona bien esta aca
http://www.programmingforums.org/post105986.html
y funciona bien en python puro como dije, espero comentarios. Gracias.