Platypus 5.3 文档(手工翻译,见谅)

Platypus是一款免费开源工具,能将脚本转化为macOS本地应用程序,支持多种界面风格及脚本语言。本文介绍其工作原理、系统要求及主要功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Documentation for Platypus 5.3

简介


什么是Platypus?

Platypus是一款根据脚本来创建macOS本地应用程序的开发工具。因此,脚本被转换成可以在窗口环境(如Finder、Dock等)下启动的常规应用程序,而不需要使用命令行来运行。
Platypus首次发布于2003年,并且经历了多次重要的更新。它是用Object-C/Cocoa编写的,是在BSD许可下发布的免费开源软件。这意味着源代码是免费的,您可以随意修改和发布它。
尽管Platypus是一款免费的开源软件,但它是十多年来投入了无数个小时的产物。所以如果Platypus让你的生活更轻松,请捐款支持进一步发展。

Platypus如何工作?

常规的macOS应用程序 是一个包(bundle) :具有特定目录结构的特殊文件夹
可执行的二进制文件、资源和配置文件一同存放在包中
当在用户界面打开包时,二进制可执行文件将会运行

Platypus使用一个特殊的二进制可执行文件来启动脚本并且捕获到该脚本的输出以此来创建应用程序包
该二进制文件可以配置为以不同方式显示脚本的文本输出,例如显示进度条、文本视图、状态项菜单或基于WebKit的Web视图。

Platypus不是什么?

Platypus不是将macOS本地API和脚本语言进行绑定,它不是一个完整的GUI开发环境,所以不适合去创建复杂和有动态用户交互的实质性应用程序(substantial applications)。
如果你想要创建更高级的macOS应用程序,您应该学会使用Cocoa api进行编程。
Platypus不是也永远不会取代 学习使用(大多数优秀的)本地应用程序编程接口

系统要求

Platypus和它生成的应用程序都需要macOS 10.8 以上的版本,并且提供64位英特尔二进制
如果你想使用10.6或者32位系统,可以使用Platypus 4.9 版本
如果想使用10.4或者更早以前的 PowerPC用户,请使用 Platypus 4.4版本

Credits(认证?声明?)

Platypus是由Sveinbjorn Thordarson 构思和实现的。
它的应用图标是由 Drífa Líftóra 所设计的
在此致谢
Troy Stephens: IconFamily类的原作者,用于处理Platypus中的图标
Bryan D K Jones: VDKQueue的作者
Gianni Ceccarelli:负责为经过身份验证的脚本提供代码
**Matt Gallagher :负责临时文件安全代码
** Andy Matuschak
:负责更新框架
这数十年来 Stack OverflowOmniGroup Mac开发邮件列表 也起着非常重要的作用。
最后,非常感激 Wilfredo Sanchez,DropScript项目的作者,一开始激励我完成Platypus的概念证明项目。

基础


主界面

Platypus的主界面比较直白明了,一旦启动Platypus应用程序,就会看到如下所示的窗口:
在这里插入图片描述

App Name(应用程序名称)

你应用程序的名称

Script Path(脚本路径)

要创建应用程序的脚本的路径。或者使用选择按钮可选择脚本,或在Platypus窗口中拖动脚本文件。您还可以手动输入路径(文本字段支持shell样式 按tab键自动填充)。

在这里插入图片描述

一旦选择了脚本,就可以按下编辑按钮在默认文本编辑器中打开它。Platypus 默认使用一个非常基本的内置文本编辑器。如果您想使用功能更丰富的外部编辑器,您可以在Preferences 中进行修改。

New按钮会在Platypus 应用程序文件夹中创建脚本文件,并在默认编辑器中打开它。Reveal按钮显示Finder中的脚本文件。

Interpreter(解释程序)

使用Script Type 为您的脚本指定一个脚本解释器。从弹出菜单中选择一种预定义的脚本语言,或者手动输入解释器二进制文件的路径。

大多数情况下,您不需要手动指定。每当打开脚本文件时,Platypus都会根据文件后缀以及shebang行(#!)自动确定其脚本类型。如果您已经在脚本文件中指明了,那么Platypus通常是足够聪明去解决这个问题的。

请注意,解释器必须存在于运行应用程序的系统上。所有预设的脚本语言解释器(Node.js除外)都是所有MacOS安装的标准部分。

Args让您能够向脚本或其解释器添加参数。

在这里插入图片描述

Interface(界面)

Interface设置应用程序的用户界面。Platypus提供了六种不同的界面风格:
在这里插入图片描述

None(无)

不提供图形反馈的无窗口应用程序。所有脚本输出都重定向到STDERR.

Progress Bar(进度条)

在脚本执行过程中,会出现一个带有不确定进度条取消按钮的小窗口。脚本输出逐行输入到进度栏上方的文本域中。Details按钮显示一个包含完整脚本输出的小文本视图。

在这里插入图片描述

Text Window(文本窗口)

显示包含脚本输出的文本视图的窗口。请注意,此文本视图不是一个完整的交互式终端会话,不能用于提示用户通过STDIN输入。它不支持任何标准终端命令,也不能用于显示基于ncurses的界面。
文本视图的样式可以Text Settings中设置
在这里插入图片描述

Web View (web视图)

脚本的输出在WebView窗口中呈现为HTML。这允许您使用HTML格式和其他Web技术向用户显示脚本输出。

浏览器实例的根目录是应用程序包的资源目录,因此可以通过将图像和其他支持文件添加到捆绑文件列表并然后从该目录引用它们。
在这里插入图片描述

Status Menu(状态菜单)

在启动应用程序时,在菜单栏中创建一个状态项。每次点击状态项时,脚本都会被执行,其文本输出将在菜单中逐行显示。如果选择了菜单项,将再次执行脚本,并将选定项的标题作为参数传递给脚本。
状态项的属性(图标、标题等)可以在Status Item Settings按钮中设置。

Droplet

创建一个正方形窗口,指示用户将文件放在上面运行。在运行过程中,脚本输出将逐行显示,并带有一个不确定的循环进度指示符。
在这里插入图片描述

Setting the Icon(设置图标)

Platypus允许你为你的应用程序设置一个图标。您可以从预置的图标中选择,粘贴自己的图像或选择imageicns文件。
请注意,Platypus从一个普通的图像文件中创建图标时,通常效果不太理想。因此要获得最佳效果,请使用专业的图标编辑软件进行编辑,并通过Select .icns file 选项导入精心制作的.icns文件。

Identifier, Author and Version(标识符,作者和版本)

这个Identifier文本域 指定应用程序唯一标识符。如果您已经设置了应用程序名称,这将默认为“org.用户名.应用程序名”。

每个MacOS应用程序都有一个称为包标识符的唯一字符串,该字符串的形式是反向DNS名称(例如“com.apple.iTunes”或“org.sveinbjorn.Platypus”)。Platypus使用应用程序名称和默认用户名自动格式化包标识符,但您可以将其设置为任何您想要的。默认的包标识符前缀可以在Preferences中进行修改.

在这里插入图片描述
你也可以设置AuthorVersion元数据。此信息将出现在Finder中你应用程序的“GET Info窗口和通过应用程序菜单栏可访问的“关于窗口中。

Special Options(特殊选项)
Run with root privileges(以root权限运行):

如果选中,应用程序将提示输入管理员密码,并使用Apple的安全框架以升级(根)权限执行脚本。这并不完全等同于root权限用户运行脚本。有关详细信息,请参阅MacOS安全框架文档.

Platypus脚本不能使用“sudo”命令…这将导致脚本提示用户输入STDIN,由于没有输入,应用程序将无限期挂起

请注意,如果选择了此选项,由于SecurityAPI中的限制,无法捕获STDERR输出。这可以通过使用shell脚本执行另一个脚本来规避,通过管道将STDERR传输到STDOUT(如:perl myScript.pl 2>&1).

Runs in background(后台运行):

如果被选中,应用程序将自己注册为用户界面元素(LSUIElement),并且在启动时不会出现在Dock中。

Remain running after completion(完成后继续运行):

此选项告诉应用程序在脚本执行后保持打开状态。

Bundled Files(捆绑文件)

Bundled Files包含应当被拷贝到 应用程序包的Resources文件夹的文件
然后,在同一文件目录下运行的脚本可以使用这些文件

在这里插入图片描述

高级选项


接受文件和拖动项目

勾选Accept dropped items使得应用程序包能够接受拖入的文件或者文本片段。
您可以通过下拉设置 来指定 应用程序包 能够接受哪些类型的文件和可拖动数据。
在这里插入图片描述

### Platypus 和 NSGA 的优化算法实现及相关文档 Platypus 是一个多目标进化算法(MOEA)平台,支持多种多目标优化算法的实现和比较。其中,NSGA-II 是一种广泛使用的多目标遗传算法,在 Platypus 中得到了良好的支持[^1]。 #### Platypus 平台概述 Platypus 提供了一个统一的接口来运行不同的多目标优化算法。它不仅实现了经典的 MOEA 方法(如 NSGA-II),还提供了工具来进行性能评估、参数调整以及可视化分析。通过安装 Platypus 库,可以轻松访问这些功能并将其集成到自己的项目中。 要安装 Platypus,可以通过 pip 命令完成如下操作: ```bash pip install platypus-opt ``` #### NSGA-II 实现细节 NSGA-II(Non-dominated Sorting Genetic Algorithm II)是一种高效的多目标优化算法,其核心思想在于利用非支配排序机制和拥挤距离计算方法保持种群多样性的同时找到帕累托前沿解集。以下是基于 Platypus 的简单 NSGA-II 示例代码: ```python from platypus import Problem, Real, NSGAII # 定义一个双目标优化问题 class MyProblem(Problem): def __init__(self): super().__init__(2, # 变量数量 types=[Real(-10, 10), Real(-10, 10)], directions=[Problem.MINIMIZE, Problem.MAXIMIZE]) def evaluate(self, solution): x = solution.variables[:] f1 = sum((xi - 2)**2 for xi in x) f2 = sum((xi + 2)**2 for xi in x) solution.objectives[:] = [f1, f2] problem = MyProblem() algorithm = NSGAII(problem) # 运行算法指定迭代次数 algorithm.run(10000) for s in algorithm.result: print(s.objectives) ``` 上述代码定义了一类简单的双目标优化问题,并调用了 NSGA-II 来求解该问题中的最优解集合。 #### 文档资源推荐 对于希望深入了解 Platypus 或者 NSGA-II 使用方式的技术人员来说,官方 GitHub 页面是一个非常好的起点。这里包含了详细的 API 描述、教程案例以及其他社区贡献的内容链接地址:[Platypus GitHub Repository](https://github.com/Project-Platypus/Platypus)。 此外,还可以查阅有关多目标优化理论基础的文章或者书籍进一步巩固理解,比如《Multiobjective Optimization Using Evolutionary Algorithms》一书由 Kalyanmoy Deb 所著,它是学习 NSGA 系列算法的经典参考资料之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值