Python не может загрузить dll при запуске из cmd, powershell или cygwin, но работает в Git Bash - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть 64-битная dll "tdjson.dll" (telegram tdlib), которую я хочу использовать в своем проекте на python.Проблема в том, что python не может импортировать DLL, когда я запускаю свой код из CMD, PowerShell, Cygwin или любого другого терминала, кроме Git Bash.Единственный способ запустить мой код - это запустить его из терминала Git Bash, поставляемого с Git для Windows.

Вот журналы из Mingw64 и CMD:

usrname@pcname MINGW64 /e/projects/tele (master)
$ where python
C:\Users\usrname\AppData\Local\Programs\Python\Python37\python.exe

usrname@pcname MINGW64 /e/projects/tele (master)
$ python -i
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> CDLL("tdjson.dll")
<CDLL 'tdjson.dll', handle 7ffd19a70000 at 0x2939d19b0b8>
>>>

E:\projects\tele>where python
C:\Users\usrname\AppData\Local\Programs\Python\Python37\python.exe

E:\projects\tele>python -i
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> CDLL("tdjson.dll")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\usrname\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...