mac os下py2app打包python程序

来源:互联网 发布:崩坏3淘宝 编辑:程序博客网 时间:2024/06/05 14:37

帮朋友忙用python写了个小工具,然后用py2app打包python程序成app文件。

一打开崩溃,对话框报了Error并问是open console还是termite。

死马得当活马医,当然是open console了!结果打开控制台看到的信息是:

storeuid(377) deny mach-lookup com.apple.dock.server

网上搜了一通也不得要领,后来突然想起来,自己的python程序用了同目录下的一个txt文件,是不是没一起打包进去!

往setup.py里加了data_files = ['Foo.txt']

果然生成的app程序能跑起来了!


兴冲冲地发给小伙伴。结果反馈说报错:

"you can't open the application. because PowerPC applications are no longer supported"

问了对方mac os的版本,跟我一样,都是Mac OS X 10.10.1 ,这是为什么呢!!

网上搜了一下,说是Mac os从Lion版本之后就不支持PowerPC了,而python2.7的程序打包会自带对PowerPC的支持。

于是想办法得移除对PowerPC(也就是ppc)的支持代码。

又是一通谷歌百度,用了两步来解决,一步一步似爪牙:

1、修改setup.py,

 prefer_ppc = platform.processor() == 'powerpc'    setup(                           app=['Foo.py'],                           data_files=data_files = ['Foo.txt'],             options={'py2app': {'argv_emulation': True,                                 'prefer_ppc': prefer_ppc,                                          '}},                      setup_requires=['py2app'])

2、用ditto命令

ditto --rsrc --arch i386 /Applications/Foo.app /Application/Foo-i386.app

接下来顺利地 rm -rf build dist 清空之前的生成目录,python setup.py py2app 打包发布app。

打出来的文件果然小了,程序终于能在朋友电脑上跑了!


虽然到最后有两个问题依然困惑着我:

1、到底为啥我俩系统版本一样,我自己一开始打包的app就没报powerpc的错,正常运行?

2、两步中究竟哪一步起的作用移除了ppc的代码?任何一步都行,还是恰好被我碰中需要两步一起使用?懒得拉朋友做测试了。。。

0 0
原创粉丝点击