Возникли проблемы при использовании py2exe - PullRequest
2 голосов
/ 30 января 2012

так что я пытаюсь сделать исполняемый файл. Я использую Python 2.7, и из того, что я могу сказать, у меня установлена ​​правильная версия py2exe. Я написал простой код setup.py для создания исполняемого файла.

Однако, когда я запускаю его, я получаю сообщение об ошибке:

ошибка: MSVCP90.dll: нет такого файла или каталога

Теперь я попытался исправить это двумя способами:

  1. Я установил файл MSVCP90.dll и вставил его в DLL-файл python27, а затем запустил установку. Это успешно созданный исполняемый файл. Однако, когда я попытался запустить исполняемый файл, он сказал:

Программа не может запуститься, потому что MSVCR90.dll отсутствует на вашем компьютере. Попробуйте переустановить программу, чтобы решить эту проблему.

Я скачал эту dll и поместил ее с python27 и exe, чтобы увидеть, что произойдет, но ни одна из них не сработала.

  1. Я исключил файл MSVCP90.dll из файла установки. Опять же, это успешно создало исполняемый файл, но я столкнулся с той же ошибкой при нажатии на него.

Я много раз переустанавливал python и py2exe, и это не помогло.

У кого-нибудь есть идеи относительно того, что я могу сделать, чтобы этот исполняемый файл работал?

1 Ответ

0 голосов
/ 30 января 2012

Как вы упомянули в комментариях, вы используете wxpython.У меня была такая же проблема с wxpython и py2exe.Я решил это, добавив манифест для MSVCP90.dll в исполняемый файл.Попробуйте добавить эти строки в setup.py и посмотрите, работает ли он.

manifest = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    version="5.0.0.0"
    processorArchitecture="x86"
    name="%(prog)s"
    type="win32"
  />
  <description>%(prog)s</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
            level="asInvoker"
            uiAccess="false">
        </requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
            type="win32"
            name="Microsoft.VC90.CRT"
            version="9.0.21022.8"
            processorArchitecture="x86"
            publicKeyToken="1fc8b3b9a1e18e3b">
      </assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
  </dependency>
</assembly>"""

...

windows = [{"script":"myscript.pyw",'other_resources': [(24,1,manifest)]}] 
...