介绍几款在线编程工具

无需编译环境开始 python 编程以及共享代码

Posted by Paradise on February 28, 2023

有时候个人电脑不在身边,又需要处理一些工作,这时候可能需要在朋友的电脑或者公用电脑上操作数据。又或者要将自己写的代码以 notebook 的形式分享给 co-worker,这时就需要用到以下总结的几个直接在浏览器里进行 Python 编程的工具。(均可免费使用,也有相应的增值服务)

以下均凭个人感受信口雌黄,不够准确。感兴趣的读者应该自己去实践了解。

一、简介

Kesci

这个是数据科学社区用的比较多的平台,相对来说也比较成熟,功能比较完善,现阶段有比较慷慨的免费计算资源。

Kaggle

主要做竞赛的国外平台,对标国内的 Kesci。但是由于是国外网络,用起来不够 Kesci 顺畅。

Deepnote

这个比上述的两个平台少了很多功能,主打协作开发。因此它的用法、界面等也简洁很多,更加适合用来实现本文中提到的需求。但是由于是国外网络,也有类似的缺点。

Binder

就是一个在线版的 Jupyter Notebook,用法很简洁,直接连接到 GitHub 储存库就可以像在本地一样使用 Jupyter Notebook 进行开发。而且经过测试也有相当好的流畅度,推荐使用。也是这里要重点介绍的。

二、重点介绍 Binder

基本用法就是:

  • 1) 创建一个(或已存在的)Github 仓库,里面包含你要共享或在线编辑的 notebook

  • 2) 在浏览器打开以下网址:
  • 3) 等待片刻就在服务器搭建好一个虚拟环境,并加载出 Jupyter 的页面

  • 4) 第一次加载会慢一点,后面的操作就很流畅了。然后就像在本地服务使用 Jupyter Notebook 一样该干啥干啥就可以了。

(根据我短暂的使用经验得出的)注意事项:

  • 这玩意儿是直接免注册免登录免费拿来就用的

  • 直接按上面操作,notebook 还不能正确运行,因为虚拟环境里面还没有相关的依赖库,这时可以:

    • 在 repo 里面加上 requirements.txt 文档,可以参考这篇博客。这样 Binder 就会在创建虚拟环境的时候给你安装依赖。
    • 或者直接在 notebook 的 cell 里面用魔术命令安装(下图)。看到服务端的 pip 下载速度多少有点吃鲸。

  • 如果一段时间不操作已经打开的 notebook,它就会告诉你内核已死,这时候重启一下 kernel 即可。

  • 如果再过很长的一段时间没有操作,虚拟环境也会失效,这时候刷新一下就 page not found 了。所以做完了要把需要保存的东西手动保存到本地,它也不会给你同步到对应的 github 仓库。

更多用法有待探索。Binder主页文档位置

相关阅读-Medium

END