py2app无法正确排除模块

2024-06-16 13:32:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用py2app与PyQt5构建一个应用程序包,并排除不必要的modole,但是,我仍然在我的应用程序中得到了整个PyQt5包,它超过了200MB

from setuptools import setup

APP = ['browser.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True, 'includes': ['PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtWidgets'],
        'excludes': ['PyQt5.QtDesigner', 'PyQt5.QtNetwork', 'PyQt5.QtOpenGL', 'PyQt5.QtScript', 'PyQt5.QtSql', 'PyQt5.QtTest','PyQt5.QtXml', 'PyQt5.QtHelp','QtHelp','QtSerialPort','QtHelp.so','PyQt5.QtHelp.so']}

setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],

这是浏览器.py在

^{pr2}$

谢谢!在


Tags: frompy程序包app应用程序datasosetup
2条回答

我在PyQt5项目中也遇到了同样的问题。在

我使用的解决方案是在py2app构建应用程序之后删除文件。 在我的情况下可以节省大约100磅。在

你可以在这里看到我使用的代码:

https://github.com/barry-scott/scm-workbench/blob/master/Kit/macOS/build-app.sh

基本思想是只包含列出的PyQt5模块。 我手动设置使用的模块列表。在

更新:

我目前的做法是把PyQt5剪下来,只留下必要的包裹。将PyQt替换为切割的PyQt。在

相关问题 更多 >