
ok 软件界面设计完了 需要给软件打包成独立能运行的app。我是用了py2app。
刚开始使用pyinstaller 打包app。打包完了点击一闪就没了,花了好几天,一直没有解决。最后另起新路,选择了py2app。按照官方的步骤运行。一次就成功打包出能运行的app。但是在测试的时候,发现经过py2app打包带有写入模块.write()不能工作。经过各种尝试与搜索。得出,你写入的文件编码没有定义好。所有写不进去,最总在写入字符串的时候加上encoding=’utf-8’参数。就能完全实现功能了
py2app打包py程序
参考:
官方文档
安装:
pip install -U py2app
使用:
使用py2app可以轻松地将脚本转换为Mac OS X应用程序。
创建setup.py文件
第一步是setup.py
为脚本创建一个文件。setup.py
是“项目文件”,告诉setuptools构建应用程序需要知道的一切。我们将使用py2applet脚本来做到这一点:
$ py2applet --make-setup MyApplication.py
Wrote setup.py
如果您的应用程序有一个图标(.icns
格式)或它需要的数据文件,您还应该将它们指定为py2applet的参数。
清理构建目录
在开始开发或切换开发模式之前,通常最好确保清除您的build
和dist
目录:
$ rm -rf build dist
用别名模式开发(不加-A,就可以打包出独立的app)
别名模式(-A
或--alias
选项)指示py2app构建一个使用源和数据文件的应用程序包。它不会创建独立应用程序,并且以别名模式构建的应用程序无法移植到其他计算机。此模式类似于 setuptools develop
命令或Xcode的零链接功能。
要以别名模式构建应用程序,请setup.py
使用该 py2app
命令执行并指定-A
选项(或--alias
):
$ python setup.py py2app -A
在此之后,py2app会向你的终端吐出一堆消息,你最终会得到新的build
和dist
文件夹。该build
文件夹包含您永远不需要触摸的构建污泥,该dist
文件夹包含您的应用程序包。应用程序包将以脚本命名; 如果您的脚本已命名MyApplication.py
,那么您的应用程序包将被命名 MyApplication.app
。请注意,Finder显示没有.app
扩展名的应用程序包。
您只需在添加数据文件或更改选项时再次运行此命令。对源代码的更改不需要重建!
py2app文本写入问题:
#保存文件解决encoding='utf-8' def saveSrt(file_name, contents): fh = open(file_name, 'w',encoding='utf-8') fh.write(contents) fh.close()
自添加外部文件:
我是需要添加一张图片到我的py程序里。如果你没有给他打包进你的app里面。在其他电脑运行就会报错。
编辑生成的setup.py文件
DATA_FILES = ['bj.png']#添加各种素材
定义信息:
参考:
编辑生成的setup.py文件
OPTIONS = { "iconfile":"fcp7tosrt_logo.icns",##自定义app图标 'plist': { 'argv_emulation': True, 'CFBundleName': "小笨驴fcp7tosrt", 'CFBundleDisplayName': "小笨驴fcp7tosrt", 'CFBundleGetInfoString': "简单高效把Final Cut Pro 7字幕转换成srt字幕", 'CFBundleIdentifier': "com.metachris.osx.sandwich", 'CFBundleVersion': "2019-01-22-0.1.0", 'CFBundleShortVersionString': "2019-01-22-0.1.0", 'NSHumanReadableCopyright': u"版权所有 © 2019, 仙人掌教育", 'Localization native development region':'China' }
自定义app图标
安装官方的要求设计一个512×512的png图标,最后打包就是不显示图标。我把png图标在线转换成.icns图标。然后在生成的setup.py文件添加信息。打包就能显示了。
apple 图标设计要求:https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/
icns在线转换:https://cloudconvert.com/png-to-icns
ai里面设计图标:
最后生成了app之后,再给他打包成dmg,就是可以传播了。 dmg制作参考:https://jingyan.baidu.com/article/fa4125acf4b0c728ac7092b0.html
0回复python生成mac os app记录-py2app"