COM

Javi qualopec en lycos.es
Lun Ago 25 10:00:42 CEST 2003


Estoy intentado trabajar con COM y  en mi intento de crear una dll con 
py2exe no funciona

tengo la siguiente clase - viene en los ejemplos de las extensiones win32 -:

# testblep.py
class HelloWorld:

    public_methods_ = ['Hello']
    _public_attrs_ = ['softspace', 'noCalls']
    _readonly_attrs_ = ['noCalls']

    _reg_clsid_ = "{57D95BCA-7883-4988-93BB-35C81C2CB026}"
    _reg_desc_ = "Python Test COM Server"
    _reg_progid_ = "Python.TestServer"
    _public_methods_ = ['Hello']

   
   
    def __init__(self):

        self.softspace = 1

        self.noCalls = 0

    def Hello(self, who):

        self.noCalls = self.noCalls + 1

        # insert "softspace" number of spaces

        return "Hello" + " " * self.softspace + str(who)


if __name__=='__main__':
    import  win32com.server.register,sys;
    win32com.server.register.UseCommandLine(HelloWorld)


si ejecuto este script se registra correctamente y funciona bien (lo he 
testeado con un programilla en vbs)

ahora _intento_ crear la dll

tengo el build_com.py:
#build_com.py:
from distutils.core import setup
import testblep
import py2exe


setup(name="testblep.py",
      scripts=["testblep.HelloWorld"],
)


ahora ejecuto lo siguiente:

C:\soft\dev_utils>"C:\Archivos de programa\Python23\python"  
build_com.py py2exe  --com-dll

y me da un error:

Traceback (most recent call last):
  File "build_com.py", line 7, in ?
    scripts=["testblep.HelloWorld"],
  File "C:\Archivos de programa\Python23\lib\distutils\core.py", line 
149, in se
tup
    dist.run_commands()
  File "C:\Archivos de programa\Python23\lib\distutils\dist.py", line 
907, in ru
n_commands
    self.run_command(cmd)
  File "C:\Archivos de programa\Python23\lib\distutils\dist.py", line 
927, in ru
n_command
    cmd_obj.run()
  File "C:\ARCHIV~1\Python23\Lib\site-packages\py2exe\build_exe.py", 
line 561, i
n run
    mf.import_hook(f)
  File 
"C:\ARCHIV~1\Python23\Lib\site-packages\py2exe\tools\modulefinder.py", li
ne 127, in import_hook
    m = self.load_tail(q, tail)
  File 
"C:\ARCHIV~1\Python23\Lib\site-packages\py2exe\tools\modulefinder.py", li
ne 193, in load_tail
    raise ImportError, "No module named " + mname
ImportError: No module named testblep.HelloWorld


# siento que sea tan largo XD




Más información sobre la lista de distribución Python-es