有时候个人电脑不在身边,又需要处理一些工作,这时候可能需要在朋友的电脑或者公用电脑上操作数据。又或者要将自己写的代码以 notebook 的形式分享给 co-worker,这时就需要用到以下总结的几个直接在浏览器里进行 Python 编程的工具。(均可免费使用,也有相应的增值服务)
以下均凭个人感受信口雌黄,不够准确。感兴趣的读者应该自己去实践了解。
一、简介
Kesci
这个是数据科学社区用的比较多的平台,相对来说也比较成熟,功能比较完善,现阶段有比较慷慨的免费计算资源。
Kaggle
主要做竞赛的国外平台,对标国内的 Kesci。但是由于是国外网络,用起来不够 Kesci 顺畅。
Deepnote
这个比上述的两个平台少了很多功能,主打协作开发。因此它的用法、界面等也简洁很多,更加适合用来实现本文中提到的需求。但是由于是国外网络,也有类似的缺点。
Binder
就是一个在线版的 Jupyter Notebook,用法很简洁,直接连接到 GitHub 储存库就可以像在本地一样使用 Jupyter Notebook 进行开发。而且经过测试也有相当好的流畅度,推荐使用。也是这里要重点介绍的。
二、重点介绍 Binder
基本用法就是:
- (1) 创建一个(或已存在的)Github 仓库,里面包含你要共享或在线编辑的 notebook
- (2) 在浏览器打开以下网址:
https://mybinder.org/v2/gh/{username}/{reponame}/HEAD
- 对应上图仓库的链接就是 https://mybinder.org/v2/gh/paradiseeee/test/HEAD
- (3) 等待片刻就在服务器搭建好一个虚拟环境,并加载出 Jupyter 的页面
- (4) 第一次加载会慢一点,后面的操作就很流畅了。然后就像在本地服务使用 Jupyter Notebook 一样该干啥干啥就可以了。
(根据我短暂的使用经验得出的)注意事项:
- 这玩意儿是直接免注册免登录免费拿来就用的
- 直接按上面操作,notebook 还不能正确运行,因为虚拟环境里面还没有相关的依赖库,这时可以:
- 在 repo 里面加上 requirements.txt 文档,可以参考这篇博客。这样 Binder 就会在创建虚拟环境的时候给你安装依赖。
- 或者直接在 notebook 的 cell 里面用魔术命令安装(下图)。看到服务端的 pip 下载速度多少有点吃鲸。
- 如果一段时间不操作已经打开的 notebook,它就会告诉你内核已死,这时候重启一下 kernel 即可。
- 如果再过很长的一段时间没有操作,虚拟环境也会失效,这时候刷新一下就 page not found 了。所以做完了要把需要保存的东西手动保存到本地,它也不会给你同步到对应的 github 仓库。
END