繁体   English   中英

Qt平台插件'Windows'-py2exe

[英]Qt platform plugin 'windows' - py2exe

我知道有很多关于这个问题的文章(我已经看过了)。 但是我的exe仍然有问题,仍然无法打开。

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

我试过libEGL.dll ,什么也没有。

有什么建议么 ? 有办法避免出现此问题吗?

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

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

将以下文件复制到主.exe旁边的文件夹“平台”中: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 libs文件夹复制它: YourPythonFolder\\Lib\\site-packages\\PyQt5\\plugins\\platforms

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM