Вопрос

При использовании py2exe для распространения приложений Python с помощью wxPython обычно требуются некоторые библиотеки DLL MSVC, чтобы заставить .exe работать на недавно установленных компьютерах.В частности, двумя наиболее распространенными библиотеками DLL являются msvcp71.dll и msvcr71.dll

Первый может быть включен в .exe с помощью этот совет.Однако последнее просто помещается в dist каталог с помощью py2exe, а не в исполняемый файл, даже если я специально попрошу включить его.

Есть идеи, как заставить py2exe включить оба файла в .exe?

Это было полезно?

Решение

Разве он не запустится? Вы хотите msvcr71.dll в том же каталоге, что и исполняемый файл, чтобы загрузчик библиотеки мог найти и связать его с картой памяти приложения.

Он необходим для базовой работы, поэтому вы не можете просто позволить py2exe распаковать его с остальными библиотеками DLL.

Другие советы

py2exe не может этого сделать.Вы можете обернуть py2exe (есть пример в вики показываю, как это сделать с помощью NSIS);вы могли бы создать свою собственную оболочку, если бы использование NSIS или InnoSetup не было возможным.

В качестве альтернативы, если вы уверены, что у ваших пользователей будет установлена совместимая копия msvcr71.dll (пользователи IIRC Vista или XP SP2), вы можете обойтись без ее включения.Возможно, более полезно, если вы используете Python 2.3 (или старше), тогда Python ссылается на msvcr.dll, а не на msvcr71.dll, и у любого пользователя Windows это будет установлено, так что вы можете просто не беспокоиться об этом.

Да, py2exe может сделать это. Просмотреть эту ссылку. И если вы используете python2.7, замените " msvcr71 " на "msvcp90".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top