ipad编译java(用iPad运行Python代码,有太多问题了,看大佬如何带你如何用iPad运行Python代码!)

wufei123 发布于 2024-09-15 阅读(2)

其实,不只是iPad,手机也可以。痛点我组织过几次线下编程工作坊,带着同学们用Python处理数据科学问题。其中最让人头疼的,就是运行环境的安装。

实事求是地讲,参加工作坊之前,我已经做了认真准备例如集成环境,选用了对用户很友好的Anaconda代码在我的Macbook电脑上跑,没有问题还拿到学生的Windows 7上跑,也没有问题这才上传到了Github。

在发布的教程文章里,我也已经把安装软件包的说明写得非常详细。

还针对 Anaconda 这一 Python 运行环境的安装和运行,专门录制了视频。

但是,工作坊现场遇见的问题,依然五花八门有的是操作系统例如你可能用Windows 10实话实说,我确实没用过拿着Surface端详,连安装后的Anaconda文件夹都找不到在哪儿有的是编码不同操作系统,有的默认中文编码是UTF-8,有的是GBK。

同样一段中文文本,我这里显示一切正常,你那里就是乱码有的是套件路径来参加工作坊前,你可能看过我一些教程,并安装了 Python 2.7 版本 Anaconda来到现场,一看需要 Python 3.6 版本,你就又安装了一份新的。

结果执行起来,你根本分不清运行的 Python, pip 命令来自哪一个套件,更搞不清楚软件包究竟安装到哪里去了再加上虚拟环境配置,你就要抓狂了还有的,甚至是网络拥塞问题因为有时需要现场安装调用体积庞大的软件包,几十台电脑“预备——齐”一起争抢有限的Wifi带宽,后果可想而知。

痛定思痛,我决定改变一下现状目前的教程只提供基础源代码对于许多新手同学来说,是不够的许多同学,就倒在了安装依赖软件包的路上,继而干脆放弃了变通的办法有许多例如干脆录制代码执行视频给你看但是正如我在《MOOC教学,什么最重要?》一文中说过的,学习过程里,。

反馈最重要你需要能运行代码,并且第一时间获得结果反馈在此基础上,你还得能修改代码,对比前后执行结果的差别我得给你提供一个直接可以运行的环境零安装,自然也就没了上述烦恼这个事儿可能吗?我研究了一下,没问题。

只要你的设备上有个现代化浏览器(包括但不限于Google Chrome, Firefox, Safari和Microsoft Edge等)就行IE 8.0?那个不行,赶紧升级吧!读到这里,你应该想明白了。

因为只挑浏览器,不挑操作系统,所以别说你用Windows 10,你就是用iPad,都能运行代码尝试

然后,你就能看到熟悉的Python代码运行界面了。

这个界面来自 Jupyter Lab你可以将它理解为 Jupyter Notebook 的增强版,它具备以下特征:代码单元直接鼠标拖动;一个浏览器标签,可打开多个Notebook,而且分别使用不同的Kernel;。

提供实时渲染的Markdown编辑器;完整的文件浏览器;CSV数据文件快速浏览……图中左侧分栏,是工作目录下的全部文件右侧打开的,是咱们要使用的ipynb文件为了证明这不是逗你玩儿,请你点击右侧代码上方工具栏的运行按钮。

点击一下,就会运行出当前所在代码单元的结果。不断点击下来,你可以看见,结果都被正常渲染。

连图像也能正常显示。

甚至连下面这种需要一定运算量的可视化结果,都没问题。

为了证明这不是变魔术,你可以在新的单元格,写一行输出语句就让Python输出你的名字吧假如你叫 Chuck,就这样写:print("Hello, Chuck!")把它替换成你自己的姓名,看看输出结果是否正确?。

其实,又何止是iPad而已?你如果足够勇(sang) 于(xin) 尝(bing) 试(kuang),手机其实也是可以的。就像这样。

流程

顺便说一句,这个样例来自于我的数据科学系列教程之《如何用Python处理自然语言?(Spacy与Word Embedding)》感兴趣的同学可以点击链接,查看原文在该 GitHub 页面展示的文件列表中,你需要注意以下3个文件:。

demo.ipynbenvironment.ymlpostBuild其中demo.ipynb就是你在上一节看到的包含源代码的Jupyter Notebook文件你需要首先在本地安装相关软件包,并且运行测试通过。

如果在你本地运行都有错误,放到云上去,想必也难以正常运行environment.yml文件非常重要,它来告诉 mybinder ,需要如何为你的代码运行准备环境我们打开看看该文件的内容:dependencies: - python=3 - pip: - spacy - ipykernel - scipy - numpy - scikit-learn - matplotlib - pandas - thinc。

这个文件首先告诉 mybinder ,你的 Python 版本我们采用的是 3.6 版所以只需要指定 python=3 即可mybinder 会自动为你下载安装最新的然后这个文件说明需要使用 pip 工具安装哪些软件包。

我们需要把所有依赖的安装包都罗列出来这就是之前,我总在教程里给你说明的那些准备步骤但是这还没有完,因为 mybinder 只是为你安装好了一些软件依赖这里还有两个步骤需要处理:为了分析语义,我们需要调用预训练的Word2vec模型,这需要 mybinder 为我们提前下载好。

Jupyter Notebook 打开后,应当使用的 kernel 名称为 wangshuyi ,这个 kernel 目前还没有在 Jupyter 里面注册我们需要 mybinder 代劳为了完成上述两个步骤,你就需要准备最后一个。

postBuild文件。

根据你的依赖安装包数量等因素,你需要等待的时间长短不一。但是只有第一次构建的时候,需要花一些时间。以后每一次调用执行,就都会非常快了。构建完毕后, mybinder 会自动为我们开启对应的运行环境。

很有成就感吧!测试一下,能够正常运行代码,就证明我们成功了但是你会发现,不对啊!老师你刚才用 iPad 展示的,不是高级版的 Jupyter Lab 吗?怎么又变成了 Jupyter Notebook 了?。

我也想要高级版!别着急。

这下没问题了吧?原理你是不是觉得,mybinder 很黑科技?其实,也不算。它只是把已有的几项技术,链接了起来。这大概也算是“积木式创新”的一个实例吧。我们看看 mybinder 的说明:

可以看到,其中最为关键的技术,是用了 docker Docker 是个什么东西呢?简单来说,Docker 就是为了不同平台上,都能够顺利执行同一份代码的保障工具你有些犹疑,这说的不是 Java 吗?没错,Java 的宣传口号,就是一次编码,各处运行。

它利用虚拟机,来保障这种能力。

但是,如果你经常使用 Java 开发出来的工具,就应该了解痛点有哪些了。至少,你应该对 Java 程序的运行速度,有一些体会。

而你的浏览器能够执行 Python 代码,是因为 Jupyter Notebook (或者Lab)本来就是建立在“浏览器/服务器”(Browser / Server, B/S)结构上如果你已经在本地计算机安装过 Anaconda ,那不妨看看本地执行这个语句:。

jupyter lab会出现什么?

小结总结一下,本文为你讲述了以下内容:如何利用 mybinder ,把一个 github repo 一键转换成 Jupyter Lab 运行环境;如何在各种不同操作系统的浏览器上,运行该环境,编写、执行与修改代码;

mybinder 转换 github repo 的幕后英雄 docker 简介我希望你能想到的,不仅仅是这点儿简单的用途提几个问题给你,作为思考题:如果代码执行都在云端完成,教学实验室机房还有没有必要预装一大堆软件,且不定期更新维护?。

学校的编程练习、作业和考试有没有可能通过这种方式,直接远程进行,并且自动化评分?既然应用的技术都是开源的,你有没有可能利用这些开源工具搞个创业项目例如提供深度学习环境,租赁给科研机构与创业公司?期待你举一反三,做出有趣又有意义的创新来。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。