Произошла ошибка при запуске программы, упакованной py2exe

#pyqt4 #py2exe

#pyqt4 #py2exe

Вопрос:

Я упаковал программу на python (с использованием PyQt4) с помощью py2exe, exe-файл нормально запускается на моем компьютере, но когда я копирую его на другой компьютер, произошла ошибка, подобная следующей (в файле журнала):

Файл «PyQt4 QtGui.pyc», строка 12, в файле «PyQt4QtGui.pyc», строка 10, в __load ImportError: ошибка загрузки DLL:

подробнее:

  • я использую Python 2.5.
  • MSVCR71.dll доступна в том же каталоге, что и exe-файл.

мой setup.py скрипт:

 # coding: utf-8

from distutils.core import setup

import py2exe

import sys



#this allows to run it with a simple double click.

sys.argv.append('py2exe')


script = [{

    "script":"test.py", 

    'icon_resources':[(0, 'main.ico'),]

    }]



py2exe_options = {

        "includes":["sip",],

        "dll_excludes": ["MSVCP90.dll",]

        }

setup(windows=script, options={'py2exe':py2exe_options})
  

Ответ №1:

Вам необходимо распространить библиотеки pyqt4 DLL вместе с вашим EXE-файлом, чтобы он запускался на компьютерах, где pyqt4 не установлен. Вы должны быть в состоянии найти библиотеки DLL в чем-то вроде C:Python27Libsite-packagesPyQt4bin

Чтобы упаковать библиотеки dll с вашим EXE-файлом, вы можете использовать установщик, такой как nsis или inno.

Комментарии:

1. Даже если я копирую все DLL из «PyQt4 bin» в тот же каталог, что и exe-файл, также возникает эта проблема.

2. какая dll, по его словам, отсутствует? — сообщение об ошибке отключено.

3. После того, как я установил фрейм dotnet, теперь все в порядке.

4. что такое фрейм dotnet? .NET?

5. да, .NET download.microsoft.com/download/2/0/e /…