cx_Freeze генерирует MSI для сценария wxpython вызывает ImportError: сбой загрузки DLL - PullRequest
0 голосов
/ 11 октября 2018

Я сгенерировал msi для сценариев wxpython, но когда я запускаю exe-файл, я получаю следующую ошибку, но он работает на RAW Python Scripts

Сообщение об ошибке:

из ._core import * ImportError: Ошибка загрузки DLL: указанная процедура не найдена

Изображение полного сообщения об ошибке

Конфигурация: python 2.7

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

После стольких часов отладки я обнаружил, что при создании файла MSI cx_freeze не полностью копирует wx , idna и pycparser библиотеки.Таким образом, чтобы решить эту проблему, после установки файла MSI скопируйте эти три библиотеки из папки Python Lib ( C: \ Python27 \ Lib \ site-packages ) и замените их теми же библиотеками в вашей установке MSIпапка lib.

0 голосов
/ 12 октября 2018

Глядя на этот пост , ваша проблема, вероятно, вызвана отсутствием в каталоге исполняемого файла DLL MSVCP140.dll и VCRUNTIME140.dll.

На первом этапе найдите эти2 DLL в вашей системе (обычно под C:\Windows\System32 или где-то в вашем каталоге Python) и скопируйте их вручную в установочный каталог после запуска установщика msi.

Если это решит проблему, вы можетеавтоматизируйте это решение, добавив что-то вроде следующей записи в options kwarg вызова setup в вашем скрипте setup.py:

options = {'build_exe': {'include_files': ['path_to/VCRUNTIME140.dll', 'path_to/MSVCP140.dll']}}

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

...