PyInstaller icon option doesn#39;t work on Mac(PyInstaller图标选项在Mac上不起作用)
问题描述
我在Mac上运行了以下命令并创建了一个.app文件。
pyinstaller --icon icon.icns --noconsole -n testApp main.py
但是,生成的.app文件不显示该图标。
icon.icns在info.plist中指定为图标文件。
Content/Resouces文件夹包含icon.icns。
当我运行.app文件时,我在Dock上看到一个图标。
但是,该图标不会反映在.app文件本身中。为什么会这样?推荐答案
您应该使用命令创建MacOS应用包
如果指定正确,则在运行pyinstaller命令后,icon.icns将被复制到Resources文件夹中,并应用于dist目录中的testApp.app包。(不要按照建议尝试.ico,这是针对Windows的)。
我刚刚尝试使用PySide2创建一个简单的Python应用程序,它将图标文件包含在应用程序包中,没有任何问题。
鉴于icon.icns与main.py位于同一目录:
您的命令应该是:
$ pyinstaller --onefile --windowed --icon icon.icns --name testApp main.py
这将生成应用程序包,您应该能够很好地运行它。
但请稍等,还有更多.
遗憾的是,故事还没有完全结束。
剧透:
要以正确的方式&q;做事情并使MacOS满意,还应包括:
--osx-bundle-identifier 'YOUR_IDENTIFIER'
这样等级库文件将包含生成的Info.plist文件的信息。
规范文件中还应该有一个描述Info.plist内容的部分,在以下几行中:
app = BUNDLE(exe,
name='testApp.app',
icon='icon.icns',
bundle_identifier='com.youridentifier',
info_plist={
'NSPrincipalClass': 'NSApplication',
'NSAppleScriptEnabled': False,
'CFBundleDocumentTypes': [
{
'CFBundleTypeName': 'My File Format',
'CFBundleTypeIconFile': 'MyFileIcon.icns',
'LSItemContentTypes': ['com.example.myformat'],
'LSHandlerRank': 'Owner'
}
]
},
)
在上面的示例中,键/值
'NSPrincipalClass': 'NSApplication'
是允许Mac OS X使用视网膜分辨率呈现应用程序所必需的。
键'NSAppleScriptEnabled'被赋予Python布尔值false,它将作为<false/>输出到Info.plist。最后,键CFBundleDocumentTypes告诉Mac OS X您的应用程序支持的文件类型(如果有的话)。
这篇关于PyInstaller图标选项在Mac上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PyInstaller图标选项在Mac上不起作用
基础教程推荐
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
