Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pythoncom error: ERROR: server.policy could not create an instance. #40

Open
Wruaro opened this issue Dec 26, 2017 · 1 comment
Open

Comments

@Wruaro
Copy link

Wruaro commented Dec 26, 2017

hOLA

Al querer instanciar algún objeto en un puesto con win 10 de 64 bits estamos teniendo los siguientes errores:

pythoncom error: ERROR: server.policy could not create an instance.

Traceback (most recent call last):
File "win32com\server\policy.pyc", line 121, in CreateInstance
File "win32com\server\policy.pyc", line 719, in resolve_func
KeyError: ''
pythoncom error: Unexpected gateway error

Traceback (most recent call last):
File "win32com\server\policy.pyc", line 121, in CreateInstance
File "win32com\server\policy.pyc", line 719, in resolve_func
KeyError: ''
pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005)

se les ocurre que puede ser

desde ya muchas gracias

@reingart
Copy link
Owner

El KeyError aparentemente sucede porque Python no está pudiendo leer el registro de Windows (generalmente por problemas con las politicas de seguridad / permisos de acceso, o directamente esta dañado / mal instalado).

Concretamente ver Permisos en Windows: http://www.sistemasagiles.com.ar/trac/wiki/ManualPyAfipWs#Windows

En el foro también ha sido reportado, ver https://groups.google.com/d/msg/pyafipws/FEhS0Sfnv-s/MEXMoGmvBQAJ para otra solución tentativa.

Si eso no lo soluciona, tendrían que modificar levemente la biblioteca pywin32, módulo win32com, server, policy (generalmente C:\Python27\lib\site-packages\win32com\server\policy.py), funcion CreateInstance y resolve_func para que no explote si no encuentra la entrada en el registro.

Ver el siguiente diff -u policy.py policy_ok.py:

--- policy.py	2011-03-19 07:51:20.000000000 -0300
+++ policy_ok.py	2018-02-17 22:21:51.054186000 -0300
@@ -120,6 +120,8 @@
                                       regPolicy % clsid)
     policy = resolve_func(policy)
   except win32api.error:
+    policy = None
+  if not policy:
     policy = DefaultPolicy
 
   try:
@@ -716,7 +718,8 @@
     module = _import_module(mname)
     return getattr(module, fname)
   except ValueError: # No "." in name - assume in this module
-    return globals()[spec]
+    if spec in globals():
+      return globals()[spec]

Pueden probarlo, habría que ver si con este problema superado no surjan otros errores de permisos en el resto del código de pywin32.
Idealmente sería necesario identificar el problema de origen, más allá de esta posible mitigación.

Yo particularmente no lo pude reproducir en ningun windows 10, desde toda información técnica es más que bienvenida.

reingart added a commit that referenced this issue Jun 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants