试试:
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 并在所有计算机上运行。