Я использую py2exe для Windows 7, чтобы сделать приложение с помощью psutil. Я использую python 2.7. Я делаю один исполняемый файл. Когда я пытаюсь скомпилировать программу Python Python с psutil, ближе к концу он говорит:Как включить компоненты psutil в py2exe, которые py2exe не может найти?
The following modules appear to be missing
['_psutil_bsd', '_psutil_linux', '_psutil_osx', '_psutil_posix', '_psutil_sunos', '_scproxy', '_sysconfigdata', 'builtins']
Однако программа отлично компилируется. При запуске скомпилированной программы, он выходит из строя и создает файл журнала:
Traceback (самый последний вызов последним): Файл «TaskManager.py», строка 27, в Файл «zipextimporter.pyc», строка 82, в load_module Файл "psutil__init __. Pyc", линии 135, в Файл "zipextimporter.pyc", строка 82, в load_module Файл "psutil_psmswindows.pyc", строка 14, в Файл "zipextimporter.pyc", строка 98, в load_module ImportError: MemoryLoadLibrary не удалось загрузить _psutil_mswindows.pyd
Я попытался указать в параметрах часть установки:
"includes": ["_psutil_mswindows.pyd"]
, а также просто
"includes": ["psutil"]
Я также попробовал, включая все модули py2exe числятся пропавшими без вести. За исключением включения psutil, который ничего не сделал, py2exe не смог найти эти файлы.
Удивительное количество похожих вопросов по этой теме в Интернете, но ни один из них не имеет хороших ответов (если вообще есть ответы), и многие из ошибок - это не та проблема, которая у меня есть.
Обновление: как ни странно, я нашел _psutil_mswindows.pyd в build \ bdist.win32 \ winexe \ collect-2.7 каталога сборки py2exe. Я думаю, по какой-то причине он не упакован должным образом.
Просто нажмите ту же проблему. Похоже, файл pyd упакован правильно, он находится в library.zip. Я расследую. – dotz
Эта проблема возникла, когда я упаковал psutil с py2exe в 64-разрядную установку Windows 8, а затем попытался запустить exe-файл на 32-разрядной версии Windows XP Home Edition. Я сделал это, я перевел весь процесс сборки на Windows XP (32-разрядный), и проблема решена сама. Вчера я нашел это предложение где-то в сети, поэтому идея о происхождении ошибки не моя. Мы говорим о проблеме, когда файл _psutil_mswindows.pyd получает пакет (можно найти в library.zip). – dotz
Вместо этого я просто использовал pyinstaller. Он работал отлично с небольшой работой. –