Python Tkinter GUI(二)py2app打包Mac应用程序

Tkinter开发出来的程序如何方便其他人用呢?用命令行去执行Python文件?当然不是,打包成应用程序,更能方便其他人使用。本章讲的是如何在Mac下打包应用程序,这个过程当然是比较繁琐,当然可能会遇到问题。以下是我在打包过程中遇到的问题并解决,最终成功打包应用程序。祝你好运!

使用py2app打包Mac应用程序,你也可以选择其他的,我也没研究其他,如果你有好的方法可以一起交流。


一、安装py2app

注:以下都是在终端输入

1.安装py2app

输入:pip install py2app

注:报错:pip:commond not found,是你没有安装pip,需要安装


2.安装pip 

输入:sudo easy_install pip


二、创建setup.py文件 

1.进入项目工程:

输入:cd项目路径


2.创建setup.py

输入:py2applet --macke-setup python文件 

例如:py2applet --macke-setup main.py

注:报错:py2applet:command not found


3.解决报错py2applet:command not found

输入:sudo find / -name "py2applet" -type f  

接下来需要输入你的Mac密码,查找需要大概5分钟,结果如下:

find: /dev/fd/xx: No such file or directory

find: /dev/fd/xx: No such file or directory

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin/py2applet

py2applet路径:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin/py2applet,还是没找到那手动切换到这目录去找下是否有py2applet


4.执行步骤1,进入项目工程

输入:py2applet路径 --macke-setup python文件

例如:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/bin/py2applet --macke-setup main.py

如果成功了会显示Wrote setup.py,在你的工程下会有setup.py文件,如果没成功请接着看


三、setup.py文件创建失败,报错

1.报错信息为:

*** creating application bundle: MyApp ***

error: [Errno 1] Operation not permitted

MacOSX El Captain引入的SIP功能会影响py2app创建应用,什么叫SIP呢?自己百度吧。


2.解决步骤1:禁用SIPcsrutil disable

输入csrutil status 

csrutil disableSIP安全已关闭

csrutil enableSIP安全已开启


3.解决步骤2:设置SIP

  • 重启Mac,同时按住Command+R,直到进入Recovery Model
  • 点击Utilities —>Terminal
  • Terminal输入csrutil disablecsrutil enabel,回车
  • 重启Mac,完成

4.解决步骤3:删除受限制的文件标志

输入:sudo chflags -R norestricted /System/Library/Frameworks/Python.framework

那么问题就解决了,重新执行创建setup.py步骤


四、打包应用程序

1.清除旧的内容

输入: rm -rf build dist

2.创建app应用

输入:python setup.py py2app 

等待创建,创建完成后,项目目录会多builddist文件夹,程序应用就在dist文件下。




本章就到这就结束了,在打包过程中你遇到了有什么问题或者其他好的方法可以联系我。























你可能感兴趣的:(Python)