py2exe, включая библиотеки MSVC в .exe - PullRequest
4 голосов
/ 08 октября 2008

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

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

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

Ответы [ 3 ]

7 голосов
/ 08 октября 2008

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

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

1 голос
/ 17 марта 2014

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

1 голос
/ 08 октября 2008

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

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

...