Saltar al contenido

WindowsError: [Error 126] El módulo especificado no se pudo encontrar

Solución:

Tenga en cuenta que incluso si la DLL está en su camino. Si esa DLL se basa en otras DLL que NO están en su camino, puede obtener el mismo error. Windows no pudo encontrar una dependencia en este caso. Windows no es muy bueno para decirle lo que no pudo encontrar, solo que no encontró algo. Depende de usted averiguarlo. La ruta de búsqueda de Windows dll se puede encontrar aquí: http://msdn.microsoft.com/en-us/library/7d83bc18.aspx

En mi caso, estar seguro de que todos los archivos DLL necesarios estaban en el mismo directorio y hacer un os.chdir () en ese directorio resolvió el problema.

Cuando veo cosas como esta, generalmente es porque hay barras invertidas en la ruta que se convierten.

Por ejemplo, lo siguiente fallará, porque t en la cadena se convierte al carácter TAB.

>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:toolsdependsdepends.dll")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:toolspython271libctypes__init__.py", line 431, in LoadLibrary
    return self._dlltype(name)
  File "c:toolspython271libctypes__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found

Hay 3 soluciones (si ese es el problema)

a) Utilice barras dobles …

>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\tools\depends\depends.dll")

b) usar barras diagonales

>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")

c) use cadenas RAW (precediendo la cadena con r

>>> import ctypes
>>> ctypes.windll.LoadLibrary(r"c:toolsdependsdepends.dll")

Si bien este tercero funciona, de vez en cuando he tenido la impresión de que no se considera “correcto” porque las cadenas RAW estaban destinadas a expresiones regulares. Lo he estado usando para rutas en Windows en Python durante años sin problema :))

En la remota posibilidad de que alguien más se encuentre con este problema extremadamente específico … Algo dentro de PyTorch rompe la carga de DLL. Una vez que corres import torch, cualquier otra carga de DLL fallará. Entonces, si está utilizando PyTorch y carga sus propias DLL, tendrá que reorganizar su código para importar todas las DLL primero. Confirmado con PyTorch 1.5.0 en Python 3.7

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *