用iPad写Python代码!并且成功运行!是不是很神奇!手机也可以哦





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




零安装,自然也就没了上述烦恼。
这个事儿可能吗?
我研究了一下,没问题。
只要你的设备上有个现代化浏览器(包括但不限于Google Chrome, Firefox, Safari和Microsoft Edge等)就行。


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

这个界面来自 Jupyter Lab。
你可以将它理解为 Jupyter Notebook 的增强版,它具备以下特征:


连图像也能正常显示。

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



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







魔法表演正式开始。
请打开 mybinder 的网址( https:// mybinder.org/ )。



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



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



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

上图中,左侧是虚拟机,右侧是Docker。
Docker 不但效率上要强过 Java 虚拟机,而且它支持的编程语言也不仅仅是一种。
至于其他好处,咱们就不展开了。否则听起来像广告。


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


小结
总结一下,本文为你讲述了以下内容:
如何利用 mybinder ,把一个 github repo 一键转换成 Jupyter Lab 运行环境;
如何在各种不同操作系统的浏览器上,运行该环境,编写、执行与修改代码;
mybinder 转换 github repo 的幕后英雄 docker 简介。
我希望你能想到的,不仅仅是这点儿简单的用途。
提几个问题给你,作为思考题:
如果代码执行都在云端完成,教学实验室机房还有没有必要预装一大堆软件,且不定期更新维护?
学校的编程练习、作业和考试有没有可能通过这种方式,直接远程进行,并且自动化评分?
既然应用的技术都是开源的,你有没有可能利用这些开源工具搞个创业项目。例如提供深度学习环境,租赁给科研机构与创业公司?
期待你举一反三,做出有趣又有意义的创新来。

欢迎大家关注我的博客:https://home.cnblogs.com/u/sm123456/
欢迎大家加入千人交流答疑群;125240963