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
.
我知道有很多关于这个问题的帖子(我都读过了)。 但是我的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
.