J'ai chargé le DLL UdfManagerPython.dll
dans Dependency Walker, et il a indiqué que ce DLL dépend de python22.dll
. Lorsque j'ai essayé de charger ce DLL dans l'interpréteur Python (2.7), j'ai eu une boîte de dialogue qui m'a plus ou moins dit la même chose:
Le programme ne peut pas démarrer car python22.dll est manquant sur votre ordinateur. Essayez de réinstaller le programme pour résoudre ce problème.
Il semble donc que ce DLL devait être utilisé avec Python 2.2, et non pas avec Python 2.7 que vous utilisez.
Je n'ai pas Python 2.2 installé. Si vous l'avez, peut-être que vous obtenez des messages d'erreur différents des miens.
Il est également à noter que vous ne pouvez pas utiliser ctypes
avec Python 2.2, car ctypes
est pris en charge uniquement à partir de Python 2.3.
Je ne sais pas d'où vient ce DLL. J'ai recherché son nom sur Google et j'ai obtenu seulement quatre résultats, dont l'un était cette question.
Par ailleurs, j'ai vu une erreur de la forme 'Le module spécifié est introuvable' si le DLL lui-même peut être trouvé mais qu'une dépendance du DLL est manquante. Donc si vous obtenez un message comme celui-ci, et que vous êtes sûr que le DLL lui-même est présent, vérifiez ses dépendances.
EDIT: J'ai essayé d'installer Python 2.2 pour voir si je pouvais charger ce DLL. Avec Python 2.2 installé, vous pouvez au moins charger ce DLL, mais Python plante si vous essayez d'appeler l'une des méthodes init...
. (Je ne sais pas quels paramètres leur passer, donc je ne leur en ai passé aucun.)
Voici ce qui s'est passé lorsque j'ai essayé d'appeler une de ces méthodes:
Python 2.7.3 (default, Apr 10 2012, 23:31:26) \[MSC v.1500 32 bit (Intel)\] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import \*
>>> l = CDLL("UdfManagerPython.dll")
>>> l.initPyUdfNumber()
Fatal Python error: Interpreter not initialized (version mismatch?)
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
J'ai recherché la première ligne de ce message d'erreur, et le thème récurrent que j'ai obtenu de la plupart des résultats était que cette erreur indique que vous tentez de charger un module d'extension lié à une version de Python avec une autre version de Python.
Donc, en réponse à votre question dans les commentaires, non, je ne crois pas qu'il existe un moyen de charger ce DLL dans Python 2.7.