Плагин платформы Qt «Windows» — py2exe

Я знаю, что есть много сообщений об этой проблеме (я прочитал их все). Но у меня все еще есть проблема с моим exe, все еще не может быть открыт.

Я пытался поместить qwindows.dll (я пробовал с 3 разными qwindows.dll) в папку dist с моим exe, но ничего не меняет.

Пробовал с libEGL.dll, ничего.

Какие-либо предложения ? Есть ли способ избежать этой проблемы?


person guy16    schedule 10.06.2015    source источник
comment
Пожалуйста, объясните вашу проблему более подробно. То есть, когда появляется эта проблема, чего вы пытаетесь добиться, какими всеми способами вы пытались ее исправить и т. д.   -  person Vikas Ojha    schedule 10.06.2015


Ответы (3)


У меня тоже была эта проблема, после долгих копаний я нашел следующее решение:

Скопируйте следующий файл рядом с вашим основным .exe: libEGL.dll

Скопируйте следующий файл в папку «платформы» рядом с вашим основным .exe: qwindows.dll

Помещение qwindows.dll в подпапку - важная часть, я думаю, надеюсь, что это поможет

person Inktvisje    schedule 24.07.2015
comment
Это работает (я скопировал папки platforms , plugins и translations из PyQt5 в основную папку .exe, чтобы быть уверенным) - person guy16; 27.07.2015
comment
Круто ... Хотел бы я проголосовать за это несколько раз. :) - person Jed; 17.11.2017

Пытаться:

from setuptools import setup
import platform
from glob import glob
from main import __version__, __appname__, __author__, __author_email__


SETUP_DICT = {

    'name': __appname__,
    'version': __version__,
    'description': 'description',
    'author': __author__,
    'author_email': __author_email__,

    'data_files': (
        ('', glob(r'C:\Windows\SYSTEM32\msvcp100.dll')),
        ('', glob(r'C:\Windows\SYSTEM32\msvcr100.dll')),
        ('platforms', glob(r'C:\Python34\Lib\site-packages\PyQt5\plugins\platforms\qwindows.dll')),
        ('images', ['images\logo.png']),
        ('images', ['images\shannon.png']),
    ),

    'options': {
        'py2exe': {
            'bundle_files': 1,
            'includes': ['sip', 'PyQt5.QtCore'],
        },
    }
}

if platform.system() == 'Windows':
    import py2exe
    SETUP_DICT['windows'] = [{
        'script': 'main.py',
        'icon_resources': [(0, r'images\logo.ico')]
    }]
    SETUP_DICT['zipfile'] = None

setup(**SETUP_DICT)

копировать зависимость вручную - плохой способ, потому что py2exe позаботится об этом. С pyqt5 эта настройка работает, НО если я попытаюсь установить на другом компьютере без pyqt, exe выйдет из строя. Я перешел на pyqt4 и запускаю его на всех компьютерах.

person Reinier Hernández    schedule 03.06.2016
comment
Дистрибутив Python Anaconda может поместить файл в несколько другое место <PYTHON>\Library\plugins\platforms\qwindows.dll - person chip; 30.05.2017
comment
вам нужно только изменить строку platforms и указать адрес qwindows.dll - person Reinier Hernández; 31.05.2017

Для меня было достаточно скопировать qwindows.dll в папку platforms, как написал @Inktvisje.

И не повторяйте моей ошибки: не скачивайте этот dll из Интернета! Скопируйте его из папки Python libs: YourPythonFolder\Lib\site-packages\PyQt5\plugins\platforms.

person Andrii Liekariev    schedule 15.12.2016