LoadLibrary: указанная процедура не найдена - PullRequest
0 голосов
/ 14 января 2019

Мне нужно извлечь кое-что о системном процессе на сервере Windows 2003 (да, в 2019 году), я сделал этот код на python и скомпилировал его с auto_py_to_exe

Когда я запускаю файл .exe на сервере, я получаю сообщение об ошибке "LoadLibrary: The specified procedure could not be found." со ссылкой на python37.dll

Я пытаюсь скомпилировать как один каталог (с включенным конкретным dll), и я пытаюсь скомпилировать как один файл, и я получаю следующий вывод .

Ответы [ 2 ]

0 голосов
/ 16 января 2019

наконец-то я использовал python 2.7.9 и py2exe, это решено, но PSutil не совместим с сервером windows 2003: c

0 голосов
/ 15 января 2019

Слишком большой разрыв между Python 3,7 и Win 2003 . Глядя на [Python.Wiki]: WindowsCompilers Python 3.7 там даже не указан (так как он построен с VStudio 2017 ). Для этого (и для Python ) потребуются функции / call, которые отсутствуют в Win 2003 system .dll s.

Вот пример. На изображениях ниже я открыл 2 версии '( 2.7 и 3.7 ) main .dll с Dependency Walker :

Img0

Как видно, оба импортируют кучу функций из kernel32.dll . Но есть одно отличие: python37.dll импортирует GetTickCount64 . Согласно [MS.Docs]: функция GetTickCount64 , минимальная Server версия, которая поддерживает это Win 2008 , то есть не будет работать в Win 2003 .

Итак, вам придется вернуться к python 2.7 (вершины). Несколько лет назад я собрал Python 2.7.10 с VStudio 2010 , и он работал на Win 2003 XP SP 1 ); скорее всего, это относится и к самой новой ( 2.7 ) версии.

Обратите внимание, что вам также придется установить все пакеты, которые вы используете в своем скрипте (включая auto-py-to-exe ).

@ EDIT0

Я вспомнил (и только что проверил), что у меня Python 3.4.3 на моем XP ( SP 3 ) PC . Таким образом, существует высокая вероятность того, что Python 3 (до 3.5 ) также будет работать на Win 2003 .

@ EDIT1

Наконец, у меня есть официальное заявление: на официальной странице Python при наведении курсора мыши на кнопку " Download " выдается:

Обратите внимание, что Python 3.5+ нельзя использовать в Windows XP или более ранней версии.

или (еще яснее):

Img1

Обратите внимание, что не обязательно означает , что более старые версии гарантированно будут работать. Итак, вам нужно провести небольшое тестирование (я бы рекомендовал установить Python и необходимые пакеты на целевой машине, и только тогда, когда все прошло успешно, упакуйте все).

@ EDIT2

Я упоминал, что создал версию Python2.7 . psutil был частью этого.

>>> import sys, platform, psutil
>>> sys.version, sys.platform
('2.7.10 (default, Mar  8 2016, 15:08:43) [MSC v.1600 32 bit (Intel)]', 'win32')
>>> platform.platform()
'Windows-XP-5.1.2600-SP3'
>>> psutil.__version__
'3.1.1'

Я не упомянул, что я собрал psutil из исходных кодов, но для загрузки доступны готовые .whl s, а также Win установщики: [PyPI]: psutil 3.1.1 - Загрузка файлов .

...