我正在尝试使用 py2app 为 Mac OS X 打包 Linux 程序。我的 setup.py 看起来像这样:
"includes": "sip,numpy,cherrypy,cPickle,md5,logging,shutil,xml.sax,PyQt4,PyQt4.QtCore",
"resources": "mnemosyne",
"iconfile": "pixmaps/mnemosyne.icns",
"packages": "mnemosyne,mnemosyne.pyqt_ui,mnemosyne.libmnemosyne,mnemosyne.libmnemosyne.translators,mnemosyne.libmnemosyne.card_types,mnemosyne.libmnemosyne.databases,mnemosyne.libmnemosyne.file_formats,mnemosyne.libmnemosyne.filters,mnemosyne.libmnemosyne.loggers,mnemosyne.libmnemosyne.plugins,mnemosyne.libmnemosyne.renderers,mnemosyne.libmnemosyne.render_chains,mnemosyne.libmnemosyne.schedulers,mnemosyne.libmnemosyne.controllers,mnemosyne.libmnemosyne.ui_components,mnemosyne.libmnemosyne.statistics_pages,mnemosyne.libmnemosyne.review_controllers,mnemosyne.libmnemosyne.criteria,mnemosyne.libmnemosyne.upgrades,mnemosyne.script,mnemosyne.webserver,openSM2sync,openSM2sync.binary_formats,openSM2sync.text_formats"
Run Code Online (Sandbox Code Playgroud)
但我意识到我也可以包含这样的模块:
"includes": "sip,numpy,cherrypy,cPickle,md5,logging,shutil,xml.sax,PyQt4,PyQt4.QtCore,mnemosyne.pyqt_ui.*,mnemosyne.libmnemosyne.*,mnemosyne.libmnemosyne.translators.*,mnemosyne.libmnemosyne.card_types.*,mnemosyne.libmnemosyne.databases.*,mnemosyne.libmnemosyne.file_formats.*,mnemosyne.libmnemosyne.filters.*,mnemosyne.libmnemosyne.loggers.*,mnemosyne.libmnemosyne.plugins.*,mnemosyne.libmnemosyne.renderers.*,mnemosyne.libmnemosyne.render_chains.*,mnemosyne.libmnemosyne.schedulers.*,mnemosyne.libmnemosyne.controllers.*,mnemosyne.libmnemosyne.ui_components.*,mnemosyne.libmnemosyne.statistics_pages.*,mnemosyne.libmnemosyne.review_controllers.*,mnemosyne.libmnemosyne.criteria.*,mnemosyne.libmnemosyne.upgrades.*,mnemosyne.script.*,mnemosyne.webserver.*,openSM2sync.*,openSM2sync.binary_formats.*,openSM2sync.text_format.*",
"resources": "mnemosyne",
"iconfile": "pixmaps/mnemosyne.icns",
Run Code Online (Sandbox Code Playgroud)
我不是编码员,所以我真的不明白这里发生了什么。什么时候应该使用“includes”,什么时候应该使用“packages”?
您无需明确命名在该include字段中导入的所有内容。py2app 有一个dependency walker,它可以告诉你使用了什么并自动为你打包。它并不总是对每个模块的工作,因此include,并exclude在那里进行微调的过程。exclude如果 py2app 捆绑了一些您不使用的额外位,则使用它;您可以解压缩 Contents/Resources/lib/pythonX.X/site-packages.zip 以查看应用程序中包含的内容。
此外,我相信include是为了包含未自动包含的额外 python 模块,其中packages将包含该位置中的所有内容,而不仅仅是 python 位 - 所以这些位置中的任何和所有文件和文件类型。(我找不到链接或任何东西来确认这一点,但根据我的经验,这是我的理解)。
| 归档时间: |
|
| 查看次数: |
4577 次 |
| 最近记录: |