发布时间:2026/8/26 16:09:11
免终端:用Platypus三步把脚本打包成macOS应用 免终端用Platypus三步把脚本打包成macOS应用【免费下载链接】PlatypusCreate native macOS applications from command line scripts.项目地址: https://gitcode.com/gh_mirrors/pl/Platypus你写完了一个处理文件的脚本但需要用它的同事从没用过终端连怎么运行一个 .py 文件都不知道。Platypus 解决的就是这类问题它把命令行脚本包进一个标准的 macOS 应用程序包.app一种系统认得的特殊文件夹生成的应用能从 Finder 或 Dock 直接双击启动运行全程不需要命令行脚本输出会显示在你选定的窗口或菜单里。先说清Platypus能干什么和不能干什么 Platypus 是一个用 Objective-C 写的 macOS 开源开发者工具BSD 许可证2003 年起持续维护。它的原理不复杂把你的脚本和一个精简的执行二进制放进同一个 .app二进制读取应用内的 AppSettings.plist运行脚本再把输出按你选的界面逐行展示。你还可以在 Bundled Files 里添加支持文件它们会随脚本一起被复制进应用的 Resources 目录。适合快速做安装器、拖放工具、菜单栏小工具、启动器或把脚本交给非技术用户不适合构建复杂的交互式图形应用它不是 GUI 开发环境运行需要与用户通过标准输入对话的脚本如 Python 的input()、sudo 输密码三步跑通最小流程 先要拿到 Platypus 本身README 在作者官网给出了发布版下载链接约 3.5MB也可以从源码构建git clone https://gitcode.com/gh_mirrors/pl/Platypus cd Platypus make build_unsigned构建需要 Xcode 命令行工具产物在products目录里。之后的操作都在图形界面里完成。第一步 选脚本并让解释器自动识别打开 Platypus点 Select 按钮挑选脚本也可以直接把文件拖进窗口填好应用名。Platypus 会根据文件后缀和脚本首行的 shebang#!行猜测解释器通常不用手动设置猜错了就在 Script Type 下拉框里选或点 Args 按钮追加解释器参数。第二步 选界面类型和应用图标界面共六种None无窗口、Progress Bar进度条、Text Window文本窗口、Web View把输出当 HTML 渲染、Status Menu菜单栏、Droplet拖放窗口。拿不准就先选 Text Window。图标可用预设或导入 .icns 文件——后者在小尺寸下显示效果更好。第三步 点Create拿到成品应用点 Create 按钮应用就出现在你选择的目录里。想一边改脚本一边测试的话在弹出对话框里勾选 Create symlink应用会以符号链接引用原始脚本而不是复制一份。做出三种真实场景应用 让应用接收拖放的文件场景用户想把一堆图片发给你压缩。做法勾选 Accept dropped items在 Drop Settings 面板里用后缀名或 UTI 限定接受的文件类型文件被拖到应用图标上时路径会作为参数传给脚本再勾选 Accept dropped text 还能把拖进来的文本送进脚本的标准输入。效果用户不需要点任何按钮拖放就是操作。仓库 Examples 里的 ImageResizer用系统自带 sips 工具缩放图片和 TarGzipper把拖入的文件打包压缩就是这类应用。做一个菜单栏状态应用场景想让一个小工具常驻菜单栏。做法选 Status Menu 界面类型。每次点击状态项脚本就运行一次输出的每一行变成一个菜单项用户点某个菜单项时脚本会带着该项的文字作为参数再跑一次所以脚本能靠有没有参数区分是在列清单还是执行动作。MacbethMenu 示例就用这个套路把莎士比亚的诗句读出来。用profile配合命令行批量生成场景想把打包脚本应用纳入 CI 构建流程。做法在图形界面调好设置经 Profiles 菜单存成 .platypus 配置文件plist 格式再安装命令行工具platypus 二进制会装到 /usr/local/bin/装好后不再依赖图形界面一条命令即可重建应用/usr/local/bin/platypus -P myProfile.platypus MyApp.app效果配置只维护一份批量生成可重复。避开四个最容易踩的坑 ⚠️现象原因解决办法脚本输出最后才一次性出现语言输出缓冲Python 在 Args 里给解释器加-u关闭缓冲或在代码里 flushPerl 用$| 1脚本索要输入应用卡死生成的应用没有交互式 stdinsudo 或input()会一直等待需要提权时勾选 Run with root privileges脚本自身不要写 sudo首次打开提示 Gatekeeper 批准生成的应用默认未签名用codesign签名或让用户右键应用选打开脚本里的命令找不到GUI 启动的应用不加载用户 shell 环境变量解释器设/bin/bash并在 Args 加-l或脚本开头source ~/.bashrc在仓库里找到这些资料 完整文档全部界面类型、PROGRESS: / ALERT: 等脚本输出控制语法、完整 FAQDocumentation/Documentation.md18 个 .platypus 示例配置可在应用 Profiles 菜单直接打开Examples/命令行工具源码CLT/platypus_clt.m生成应用的执行逻辑如何启动脚本、如何捕获输出ScriptExec/SEController.m构建入口make build_unsigned目标定义在此MakefilePlatypus 把脚本变应用压缩成几次点击它的价值在于让非技术用户零门槛地用上你的脚本。建议下一步从 Profiles 菜单打开一个内置示例如 AlertMe点 Create 跑一遍整个闭环就清楚了。【免费下载链接】PlatypusCreate native macOS applications from command line scripts.项目地址: https://gitcode.com/gh_mirrors/pl/Platypus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/26 16:09:11

大模型降智是错觉还是事实,多维度对比告诉你答案

是模型变笨了,还是我们的感觉出了错? 最近社区里关于“大模型降智”的讨论热度居高不下。很多开发者都有类似的体感:明明上周还能完美解决的复杂逻辑题,这周再问却得到了一个敷衍甚至错误的回答。这种落差感让人不禁怀疑&#xf…

2026/8/26 16:04:10

【算法从零到千】【59-65】链表专题

1. 两数相加 2. 两数相加https://leetcode.cn/problems/add-two-numbers/https://leetcode.cn/problems/add-two-numbers/ 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两…

2026/8/26 17:00:05

Hadoop 分布式集群实战 2—— Hadoop 高可用架构

1 HDFS‑HA 核心组件 2 台 NameNode Active NameNode:对外处理客户端读写,唯一写元数据Standby NameNode:热备,不接收客户端请求,实时同步元数据,故障时升级为 Active JournalNode 集群(JN&…

2026/8/26 17:00:05

PCA 数据降维:原理、Sklearn 实战与自动选 K

一、为什么需要降维 在机器学习与数据分析中,高维数据(几十甚至几百个特征)会带来诸多挑战。PCA(主成分分析)作为一种经典的线性降维技术,能够有效解决以下痛点: 痛点解决方案维度灾难&#x…

2026/8/26 17:00:05

HoRain云--使用 VS Code 开发 Node.js

Visual Studio Code(简称 VS Code)是微软开发的免费开源代码编辑器, 是目前最受欢迎的 Node.js 开发编辑器之一。 主要优势 内置 Node.js 支持:提供智能代码补全、调试等功能丰富的扩展:可通过扩展市场安装各种 Node…

2026/8/26 17:00:05

系统集成易混淆考点:工作绩效数据、信息、报告怎么分

很多人做软考中级系统集成题时,看到“工作绩效数据、工作绩效信息、工作绩效报告”就头疼。它们看起来都和项目执行情况有关,名字也很像,但考试最喜欢考这种相邻概念:你知道大概意思,但一到选项里就容易选反。尤其在系…

2026/8/26 16:55:04

企业知识库怎样支撑GEO内容生成:字段分层与事实锁设计

企业知识库怎样支撑GEO内容生成:字段分层与事实锁设计 企业资料很多,不等于知识库可用。把公司介绍、产品手册、公众号旧文和销售话术全部扔进一个文件夹,搜索时可能找得到句子,生成内容时却容易把公司名、品牌名、产品名和能力边…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 0:04:32

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 1:19:35

JSON总结

JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C#、Java、JavaScr…

2026/8/26 1:19:35

保存连接sse 是什么原理,为什么不会一直请求

“保持连接”用的是 SSE(Server-Sent Events),本质是一个没有马上结束的 HTTP 请求。 过程是: 拷贝机发送一次请求: GET /api/code-sync/events服务器返回: Content-Type: text/event-stream但不关闭响应&…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…