pythonnet / pythonnet/clr-loader
netfx loader with LOAD_LIBRARY_SEARCH_USER_DIRS
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 42
- Forks
- 32
- Merge medio
- 14 h 1 min
- PR fusionados (30 d)
- 1
Descripción
If the win32 API SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_USER_DIRS) is used, the default clr_loader doesn't work.
import ctypes
from ctypes import wintypes
dll = ctypes.CDLL("Kernel32.dll")
dll.SetDefaultDllDirectories.argtypes=[wintypes.DWORD]
LOAD_LIBRARY_SEARCH_USER_DIRS = 0x00000400
dll.SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_USER_DIRS)
import clr # <---- crash
This search mode is documented here
It is used in the python distribution from the windows store (although I don't know if this issue is reproducible there) as well as some embedders of Python.
I tried the following as a workaround:
import os
os.add_dll_directory(r"C:\Windows\Microsoft.NET\Framework64\v4.0.30319")
os.add_dll_directory(r"C:\path\to\python\env\site-packages\clr_loader\ffi\dlls\amd64")
And it didn't work.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience reproduciendo el fragmento de Python que llama a SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_USER_DIRS) antes de importar clr. Inspeccione la ruta de carga de DLL de clr_loader y su directorio ffi/dlls/amd64; después, verifique que importar clr funciona con este modo de búsqueda de Windows sin depender de la solución alternativa indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools, operating-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100