Qt 平台插件 'windows' - py2exe

Qt platform plugin 'windows' - py2exe

我知道有很多关于这个问题的帖子(我都读过了)。 但是我的exe还是有问题,还是打不开

我尝试将 qwindows.dll(我尝试使用 3 个不同的 qwindows.dll)放入文件夹 dist 中,但没有任何改变。

我试过 libEGL.dll,没有。

有什么建议吗?有没有办法避免这个问题?

我也遇到过这个问题,经过大量挖掘我找到了以下解决方案:

复制主.exe 旁边的以下文件: libEGL.dll

将以下文件复制到主 .exe 旁边的文件夹 "platforms" 中: qwindows.dll

将qwindows.dll放在子文件夹中是我认为重要的部分,希望对您有所帮助

尝试:

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 和 运行。

对我来说,将 qwindows.dll 复制到 platforms 文件夹就足够了,就像@Inktvisje 写的那样。

不要重蹈我的覆辙:不要从 Internet 下载此 dll!从您的 Python 库文件夹复制它:YourPythonFolder\Lib\site-packages\PyQt5\plugins\platforms.