ish和pythonista是ios上运行python的两条互斥路径:ish基于alpine linux容器,支持标准python及pip,适合cli工具和爬虫;pythonista为原生ios应用,可调用系统api但不支持c扩展,适合轻量自动化小工具。

能跑,但得选对路子——iSH 和 Pythonista 是两条完全不同的技术路径,不能混着用,也不能指望一个解决所有问题。
iSH 里装 Python:本质是 Alpine Linux 容器
iSH 不是“iPad 版 Python”,它是用 WebAssembly 模拟 x86 的 Alpine Linux 环境,所以你面对的是真实 Linux 命令行和 apk 包管理器。Python 就是 apk add python3 装进去的普通二进制,不是 iOS 原生应用。
- 安装后默认没有
pip,必须手动装:apk add py3-pip -
pip install安装的包全在/usr/lib/python3.10/site-packages/下,不走 iOS 文件系统沙盒,无法被其他 App 访问 - 不能调用摄像头、相册、快捷指令等 iOS API;
matplotlib会报No module named 'tkinter',因为没 GUI 后端 - 适合写 CLI 工具、爬虫脚本、SSH 连服务器执行命令这类纯逻辑任务
Pythonista:iOS 原生 Python 运行时,但受限明显
Pythonista 是用 Objective-C 封装的 Python 解释器,直接运行在 iOS 上,所以能调用 photos、clipboard、notification 等模块,但代价是它不兼容 C 扩展——所有带 cffi 或 numpy 依赖的库基本都装不上。
- 自带
pip,但只支持纯 Python 包(.whl 里不能含 .so/.dylib);requests可以,scipy不行 - 文件存放在 App 沙盒内,路径固定为
Documents/,不能直接读写 iCloud Drive 或其他 App 的文件 - 编辑器支持
import自动补全,但没调试器断点,出错只能靠print()和traceback.print_exc() - 适合写自动化小工具,比如批量重命名照片、解析邮件正文、生成二维码并保存到相册
别踩的坑:路径、网络、权限三连击
两个环境都容易在同一个地方栽跟头:文件位置和网络访问。
- iSH 中
wget默认不支持 HTTPS,遇到证书错误要加--no-check-certificate;下载的文件默认在当前目录,不是/home或/root - Pythonista 的
http.server默认绑定127.0.0.1,想让 iPad 浏览器访问得改成''(空字符串),且需开启「允许后台运行」开关,否则切出去就断 - iSH 的
python3 -m http.server能被 Safari 访问,但端口必须是8000或8080(iOS 对非标准端口拦截更严) - 两者都不能监听
0.0.0.0:22做 SSH 服务——iOS 系统禁止非 Apple 签名进程绑定特权端口
真正难的不是装环境,而是搞清你要跑的代码到底依赖什么:C 扩展?GUI?系统调用?还是纯算法?选错路径,后面全是徒劳。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











