将Python脚本打包成MACOSAPP程序过程

作者:Felix-Zhao 时间:2022-03-07 14:20:43 

安装py2app

打开终端输入pip3命令安装py2app工具


pip3 install py2pp

安装完成后,默认会装到/Library/Frameworks/Python.framework/Versions/3.8/bin/py2applet目录下,3.8为python3的版本号,可以自己输入以下命令检查对应的版本号

将Python脚本打包成MACOSAPP程序过程

为了方便我们使用,我们可以将这个py2app的工具拷贝到/usr/local/bin目录下,在osx系统下终端可以直接使用工具名,否则在使用py2app时候就需要输入工具的完整路径了,可以直接在终端输入下面命令


cp /Library/Frameworks/Python.framework/Versions/3.8/bin/py2applet /usr/local/bin/py2applet

创建setup.py文件

我们将我们所要打包成app的脚本和资源统一放到同一文件夹下, cd到此目录下,然后终端输入命令:


py2applet --make-setup verify.py

此时可以看到已经有setup.py文件生成到此目录下了

配置setup.py

setup.py内有一些app信息的配置

我们也可以将自己的options加进去

如下为配置的参考,以下有几个参数需要注意:

APP: 放置要执行py的列表DATA_FILES: 存放所有要用到的文件资源,比如我放置了py_utils/这个是工具包文件夹,又放置了app所要显示的图片文件OPTIONS:可选参数
- iconfile:app的图标,必须为icns的格式,其他格式的话是不会显示出来的
- argv_emulation:查询了很多也没有查到具体是做什么用的,经实测发现设为False时打开app执行,则应用图标会在dock内不动,为True时会一直跳动,直到程序执行完成会从dock直接消失
- plist:其他的app应用配置,熟悉MACOS应用开发的都会非常熟悉这些参数,mac应用info.plist里的参数都可以添加进去


"""
This is a setup.py script generated by py2applet
Usage:
   python setup.py py2app
"""
from setuptools import setup
APP = ['verify.py']
DATA_FILES = ["py_utils/", "earth.icns"]
OPTIONS = {
"iconfile":"earth.icns",
           "argv_emulation": True,
           "plist": {
                   "CFBundleName"   : "verify",     # 应用名
                   "CFBundleDisplayName": "verify", # 应用显示名
                   "CFBundleVersion": "1.0.0",      # 应用版本号
                   "CFBundleIdentifier" : "verify", # 应用包名、唯一标识
                   "NSHumanReadableCopyright": "Copyright © 2021 SW Felix.Zhao. All rights reserved." # 可读版权
           }
       }
setup(
   app=APP,
   data_files=DATA_FILES,
   options={'py2app': OPTIONS},
   setup_requires=['py2app'],
)

生成app

还在此前的目录终端下输入命令

则app将生成到目录下


rm -rf build dist # 删除之前的dist目录
python3 setup.py py2app # 生成app

将Python脚本打包成MACOSAPP程序过程

然后双击执行即可

以上就是将Python脚本打包成MACOSAPP程序过程的详细内容,更多关于Python脚本打包成MACOSAPP程序的资料请关注脚本之家其它相关文章!

来源:https://blog.csdn.net/m0_48732747/article/details/120084301

标签:Python,脚本打包,MACOSAPP
0
投稿

猜你喜欢

  • Python flask与fastapi性能测试方法介绍

    2022-12-07 00:10:17
  • SQL 分布式查询、插入递增列示例

    2024-01-21 01:49:39
  • Python中enumerate函数代码解析

    2023-05-01 09:13:52
  • Python中input和raw_input的一点区别

    2022-02-15 19:43:22
  • python中NumPy的安装与基本操作

    2023-08-27 03:03:53
  • python的等深分箱实例

    2022-11-30 01:01:20
  • matplotlib 三维图表绘制方法简介

    2023-08-06 00:06:52
  • 在windows下使用python进行串口通讯的方法

    2022-01-03 11:10:19
  • 一个ASP写的侧边菜单栏

    2010-05-27 12:22:00
  • Mysql权限管理grant命令使笔记

    2024-01-18 02:08:28
  • Python遍历文件夹和读写文件的实现方法

    2023-07-08 06:02:56
  • 丢失的数据忘记备份的处理方法[图文]第1/2页

    2024-01-18 22:18:41
  • Go语言操作数据库及其常规操作的示例代码

    2024-01-14 07:05:46
  • 几个比较重要的MySQL变量

    2024-01-23 20:22:36
  • Python采集图片数据的实现示例

    2023-03-06 05:53:17
  • python取代netcat过程分析

    2021-07-22 17:32:51
  • Go外部依赖包从vendor,$GOPATH和$GOPATH/pkg/mod查找顺序

    2024-04-28 10:49:59
  • 详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

    2023-08-21 15:36:40
  • Java连接sqlserver2008数据库代码

    2023-07-02 10:22:17
  • Python中threading库实现线程锁与释放锁

    2021-11-13 10:26:49
  • asp之家 网络编程 m.aspxhome.com