pythonnet / pythonnet/clr-loader
netfx loader with LOAD_LIBRARY_SEARCH_USER_DIRS
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 42
- Forks
- 32
- Merge moyen
- 14 h 1 min
- PR mergées (30 j)
- 1
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire l’extrait Python qui appelle SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_USER_DIRS) avant d’importer clr. Inspectez le chemin de chargement des DLL de clr_loader et son répertoire ffi/dlls/amd64, puis vérifiez que l’importation de clr fonctionne avec ce mode de recherche Windows sans dépendre de la solution de contournement signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools, operating-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100