iPad 上进行 Python 开发是怎样的体验?

Python中文社区

共 5114字,需浏览 11分钟

 ·

2022-01-15 06:01

苹果公司在 2021 年 3 月发布了 M1 iPad Pro ,其实我很想知道在 iPad 上编程是怎样的体验。虽然 iPadOS 仍然无法提供原生 Python IDE,但事实证明,在 iPad 上用 Python 编写代码实际上非常容易,尤其是如果你愿意在 Jupyter Notebooks 中工作。
以下是您现在可以在任何 iPad 上使用 Python 编写代码的五种方法。
1、a-Shell
a-Shell 为您的 iPad 或 iPhone 提供了一个 Unix 风格的终端,而且它是完全免费的,非常强大。
安装并打开 a-Shell 后,键入 help 可以快速了解该应用程序:


a-Shell 带有 vimed 用于编辑文件,它包括开箱即用的 Python 3.9。这是在 vim 中编辑 Python 文件的样子:


a-Shell 与 iPadOS 15 的多任务功能完美搭配。您可以打开新窗口,将 a-Shell 与另一个应用程序并排放置,并且我最喜欢在滑动模式下使用 a-Shell。
我在我的 iPad 上做了大量的阅读工作。当我遇到想要在 Python REPL 中检查的内容时,能够从 iPad 的右侧滑入,快速检查 REPL 中的内容,然后通过向右滑动来关闭应用程序:


您可以在 a-Shell 中使用 pip 安装 Python 包,只要这些包是纯 Python 即可。这对很多人来说是一个严重的限制,但它确实允许您安装一些非常棒的软件包:


除了是在 iPad 上使用 Python 的好方法之外,a-Shell 还有许多其他有用的功能。您可以浏览 iPad 的文件系统、使用 curl 传输文件、生成 SSH 密钥、SSH 到远程服务器等等。您甚至可以用 C 和 C++ 编写程序并在 iPad 上运行它们。
a-Shell 的主要缺点之一是缺乏对 Python 虚拟环境的支持。这意味着 a-Shell 非常适合进行测试,或进行一些基本的纯 Python 编程,但它不太适合专业开发。
2、Carnets
Carnets 是一款免费的独立 Jupyter notebook 应用程序,可在 iPad 和 iPhone 上使用。无需连接到外部 Jupyter 服务器,您可获得完整的 Python 和 Jupyter 实现,以及一些有用的 Python 包,包括 NumPy、pandas 和 Matplotlib。
您可以创建、查看和编辑 notebook 文件,包括您在其他地方创建或别人发送给您的 notebook 文件。我最喜欢它的一点是它“有效”。下载该应用程序,几分钟后您就可以在 iPad 上运行  Jupyter notebook 了。


Carnet 的界面看起来就像浏览器中的 Jupyter。但所见即所得,这里没有任何花里胡哨的东西。
如果您需要安装 Carnets 未附带的软件包,您可以在笔记本单元内使用 %pip install 来安装该软件包:


要查看通过 Carnets 获得的所有 Python 包,请运行 %pip list


App Store 中有两个版本的 Carnets:
  1. Carnets – Jupyter
  2. Carnets – Jupyter (with scipy)
Carnets – Jupyter(with scipy) 包括一些额外的包,用于在 iPad 上进行机器学习:scipy、seaborn、sklearn 和 coremltools。如果您负担得起额外的空间,我强烈建议您下载 Carnets – Jupyter(with scipy) 而不是基本的 Carnets 应用程序。
与 a-Shell 一样,Carnets 应用程序不允许您创建隔离的 Python 环境。
3. Juno
Juno 是另一款适用于 iPad 的 Jupyter notebook 应用程序,自称是 Jupyter IDE。与 Carnets 不同的是,Juno 售价 15 美元,并带有一些不错的奖励功能。
Juno 凭借其时尚的 iPad 界面脱颖而出:


您可以通过在单元格内按 Shift + Enter 或点击屏幕右下角的蓝色Run Cell按钮来运行单元格。
闪电按钮可让您快速访问一些常见任务。您可以将单元格类型从代码更改为 Markdown,上下移动单元格,以及剪切、复制、粘贴和删除单元格:


虽然 Carnets 可以从 iPad 上的任何位置打开 Jupyter notebooks,但该界面对 iPad 不太友好。将此与 Juno 的文件选择器进行对比,后者在 iPad 和 iOS 设备上真的很舒服:


Juno 的另一个亮点是内置的类似 IDE 的选项卡完成和工具提示:


像 Carnets 一样,Juno 带有一套内置软件包。但是你不能像在 Carnets 中一样在单元格中运行 %pip list 来查看它们:


Juno 中的软件包管理实际上有点令人失望,尤其是对于一个售价 15 美元的应用来说。
我找不到 Juno 预装的软件包的完整列表,但这里有一些开箱即用的导入:


要安装包,请单击屏幕顶部中心的notebook名称,然后选择安装 Python 包。您将看到以下对话框:


像 Carnets 和 a-Shell 一样,您只能安装纯 Python 包。但与 Carnets 和 a-Shell 不同的是,您安装的软件包的任何依赖项都不会自动安装。您需要一个一个地手动安装它们。
Juno 软件包管理器的一个好处是,您有机会在安装包之前查看包的一些元数据,包括依赖项——您可以按一下按钮进行安装:


正如我之前提到的,您不能在 Juno 中使用 %pip list 查看已安装到 Juno 环境中的软件包。您必须打开 Files 应用程序并导航到 Juno 设备存储中的 site_packages/文件夹:


如果要删除已安装的软件包之一,则需要从 site_packages/中手动执行此操作。我觉得这是一个很大的缺点。
尽管包管理器很笨重,但 Juno 看起来确实比 Carnets 好得多,而且制表符补全和工具提示确实提高了生产力。如果这些功能对您很重要,并且您愿意花 15 美元以上的价格,那么 Juno 是一个不错的选择。
4. Juno Connect
Juno Connect 是一个 Jupyter notebook客户端应用程序,可用于访问远程服务器上的 Jupyter。所以,从技术上讲,Python 并没有在你的 iPad 上运行,但 Juno Connect 提供了一个漂亮的界面来处理远程 Jupyter notebook服务器。您可以花 10 美元从 App Store 购买它。
首次启动 Juno Connect 时,您将看到一个屏幕,其中包含一些可供试用的notebook,以及连接到远程notebook服务器的几个选项:


开箱即用的 Juno Connect 支持服务,例如 Cocalc 和 Binder。您还可以连接到托管在其他地方的 Jupyter 服务器,例如在 Digital Ocean droplet 上。
当您连接到notebook服务器时,您将看到如下所示的屏幕,您可以在其中创建新notebook或选择打开一个:


打开或创建新notebook后,您将看到一个与典型 Juno 界面完全相同的界面。由于 notebook 在外部服务器上运行,因此您可以访问所有典型的 Jupyter 功能,包括不适用于仅限本地版本的 Juno 的 %pip魔法:


Juno Connect 的一个不错的功能是能够将远程notebook导出到 iPad 上的本地文件:


您甚至可以将notebook 导出为新notebook ,允许您保存本地副本以在 Juno 或 Carnets 应用程序中离线使用。
5. Codeanywhere Cloud IDE
我列表中的最后一个选项不是 iPad 应用程序,它不会在你的 iPad 上本地运行 Python,但如果你需要访问一个成熟的开发环境,它绝对是必不可少的。该解决方案就是 Codeanywhere Cloud IDE。
计划起价为每月 6 美元。这将解锁一个完全在您的浏览器中运行的 VS Code 风格的 IDE。
一旦您选择了一个计划并创建了一个帐户,您将被带到您的仪表板,您可以在其中创建用于处理项目的新容器:


当您单击 New Container 时,您将有机会使用一个空白的 Ubuntu Linux 容器或从一些预装了各种语言的预定义容器中进行选择:


创建容器后,它需要几分钟才能启动并在仪表板中可供您使用:


每个容器获得的资源取决于您选择的计划。我的计划给了我 15GB 的存储空间和 4GB 的内存。
单击绿色的 Open IDE 按钮以在新的浏览器选项卡中启动 IDE:


如果您熟悉 VS Code,您会在 Codeanywhere 的 IDE 中感到非常熟悉。它的功能非常全面,包括调试支持:


您甚至可以安装扩展程序!
与此列表中提到的其他选项相比,Codeanywhere 价格昂贵。它还需要互联网连接。但是,我不能没有它。这是我发现在 iPad 上进行硬核编码的最佳方式。
在 iPad 上使用 Python 进行编码的其他方法
我提到的五个工具是我目前在 iPad 上运行 Python 时日复一日使用的工具,但还有许多其他选项值得一提。
Pythonista3
曾经有一段时间 Pythonista3 是一个不错的选择,但在我看来,情况已不再如此。
首先,Pythonista3 似乎完全被抛弃了。最后一个版本是在 iPadOS 14 可用于一年多前发布的。其次,Pythonista3 仅支持 Python 3.6,该版本已于 2021 年 12 月结束生命周期。
PyTo
PyTo 应用程序是 Python-for-iPad 领域的有力竞争者。您可以在本地运行 Python 3.10 并获得良好的 IDE 风格体验,支持编辑多个文件,包括 NumPy、SciPy、Scikit-learn 和 statsmodels 在内的几个包。完整的应用体验费用为 10 美元。
我目前正在尝试使用 PyTo,看看它是否适合我的日常使用!
Google Colab
Google 的 Colab 是基于浏览器的Jupyter notebooks。您的代码在预装了大部分 Python 数据科学包的私有虚拟机上运行。您甚至可以免费使用 GPU,这使 Colab 成为机器学习项目的绝佳选择。
vscode.dev
如果您不需要在本地运行 Python,但想要可靠的 IDE 体验,请查看 vscode.dev。您可以快速克隆外部代码存储库并直接从浏览器开始使用 Python 进行编码。
GitHub Codespaces
我从未使用过 GitHub 的 Codespaces 项目,但如果您在 Team 或 Enterprise 计划中有 GitHub 组织,这可能是一个不错的选择。它看起来与 Codeanywhere 非常相似。
pyodide
pyodide 项目通过将 Python 和 Python 数据科学包中的超过 75 个包全部编译到 WebAssembly中,然后 将它们带到任何浏览器。您可以在 REPL 中尝试 pyodide 并将其添加为书签以便将来快速访问。
iPad + RaspberryPi
另一种选择是通过 USB 将 iPad 连接到 Raspberry Pi,这样您就可以将 Raspberry Pi 作为以太网设备访问。这真的很酷,但就我个人而言,我不想随身携带更多设备。不过,它确实是一个有趣的小项目,并且可以让您访问完整的本地开发服务器。
小结
我很想在 iPad 上看到像 VS Code 这样的 IDE 的原生版本,但好像目前还没有。然而,在 a-Shell、Carnets 和 Codeanywhere 之间,我已经能够通过我的 iPad 进行 Python 开发。
所以,在 2022 年,在 iPad 上用 Python 编码不仅可行,而且非常有趣!
浏览 546
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报