Мы создали DLL, используя cygwin, и для этого написали модуль на основе классов Python. Мы создали пример сценария для модуля Python на основе классов, который создает объект класса и вызывает различные методы в классе. Этот тестовый скрипт отлично работает, пока я запускаю его из IDLE. Однако, когда я запускаю его из командной строки, он либо зависает, либо просто возвращается без выполнения функций. Когда он возвращается, я не получаю трассировку ошибки.
Когда я попытался выяснить, где именно происходит проблема. проблема возникает, когда я пытаюсь вызвать метод cygwin_dll_init файла cygwin1.dll. Этот cygwin1.dll действительно является зависимостью от DLL, которую мы создали. Поэтому мы должны загрузить эту DLL и вызвать этот метод cygwin_dll_init перед загрузкой моей DLL.
cyg = cdll.LoadLibrary("cygwin1.dll")
cyg.cygwin_dll_init() #hangs or returns here
mydll=cdll.LoadLibrary("my.dll")
mydll.func1()
Я пытаюсь понять, в чем именно разница, когда мы называем это IDLE и когда мы вызываем его из командной строки с помощью команды python. Мне также нужно будет заставить скрипт работать из командной строки.
Спасибо,
Sathish