Python在线IDE | 谷歌Colaboratory云端IDE介绍
1. 推荐阅读
Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm破解与安装、Python在线IDE、Python视频教程:https://blog.csdn.net/COCO56/article/details/95542228
2. 本文地址
- 博客园:https://www.cnblogs.com/coco56/p/11205816.html
- 简书:https://www.jianshu.com/p/7eabfdcad379
- CSDN:https://blog.csdn.net/COCO56/article/details/96424239(无内容,仅做转发使用)
3. 按
Colaboratory 是一个谷歌提供的 Jupyter notebook环境,不需要进行任何设置就可以使用,完全在云端运行,不占用本地资源,另外Colaboratory完全免费。
4. 使用篇
- 准备阶段
Colaboratory是一款谷歌服务,这里我推荐使用chrome浏览器+谷歌访问助手,这样在访问谷歌相关网站的时候就非常的方便。另外,Colaboratory的正常使用需要依托谷歌账号,如果没有的话建议注册一个。
谷歌访问助手官网:http://www.ggfwzs.com/
以上工作都完成后,就可以登陆Colaboratory网站来体验一番了,下面这幅图就是Colaboratory(以下简称colab)的介绍页面。
官网地址:https://colab.research.google.com/
- 基本用法
用过jupyter notebook的朋友应该对这个界面非常的熟悉,事实上colab的操作与普通的notebook相似度非常高,下面我们就新建一个Python3的notebook(下图),简单地演示一下它的基本用法。
点击“新建PYTHON3 记事本”
在下图中的代码框中输入Python代码,点击左侧的按钮执行程序,就会在下方输出打印结果,由于程序第一次运行之前colab会自动连接云端服务器,所以速度可能会有点慢。
值得一提的是,上面这个代码框可不是只能执行Python代码,你还可以把它当作ubuntu的终端来使用,只不过要在所有需要执行的指令之前加一个“!”号。例如,我们如果想查看当前的云端服务器中自带了哪些Python库的话,可以执行“! pip list”指令,结果如下:
可以看到,colab默认安装了大量的Python第三方库,就数据科学方面的库而言,colab的自带库应该会比Anaconda更加完善。
既然可以使用pip指令,那如果想安装其他Python库的时候也可以很方便地安装了,我拿tushare做了一个试验,结果如下:
除了python库之外,使用这种方式还可以执行其他linux指令来部署你自己的云端环境,别忘了在指令前加一个“!”号就好。
5. 配置篇
- 常用配置
我个人认为最常用的配置项主要集中在两个地方:
一是"工具"中的偏好设置(下图),在这里可以设置主题背景(共分light和dark两种)、缩进宽度等风格,有趣的是colab还自带coding特效,如果威力等级一栏选择了“many power”,那么在写代码的过程中就会产生非常炫酷的效果。
二是“修改”中的笔记本设置,这里可以设置运行时的python版本和硬件加速器。说到这里不得不佩服谷歌,居然提供了GPU和CPU两种加速模式,只要在选项中进行设置,就可以免费获取额外的算力,这下通过在线编辑器使用TensorFlow再也不是梦想了。
除此之外,colab还允许通过共享的方式邀请他人共同讨论、完善代码;如果你不想将代码放到云端服务器中运行,还可以连接本地的开发环境运行程序(下图)。
也可以将colab与github相关联,把notebook中的代码备份到GitHub中...关于这些内容,本文不进行详细说明,有兴趣的小伙伴可以自行尝试。
- 云盘挂载
先来说说挂载云端硬盘的重要性。colab中的代码文件是放在云端服务器中运行的,但存储的位置却是同一账户的谷歌云端硬盘,如果不进行关联设置,colab会默认将notebook文件放到云端硬盘根目录下的“Colab Notebooks”文件夹中。
谷歌云盘官网:https://drive.google.com/drive/my-drive
colab的notebook在云端服务器中运行期间是没办法直接读取本地文件的(比如数据集),如果想让程序读取指定文件,只能将其放到谷歌云端硬盘中,然后将云端硬盘挂载到colab。
如果在colab中保存过notebook文件,系统将会自动关联你的colab和云端硬盘账户,否则需要在云端硬盘中进行手动关联(此处略)。然后在代码框中输入以下代码并运行。
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
运行过程中会出现下图中的提示,点击链接进行授权验证,将授权码输入到链接下的文本框中,按回车键继续执行。
注意:不同的环境在这一步的执行情况可能会不太一样,需要灵活对待。
接着再执行下面两行代码,由于我在挂载前云端硬盘中有文件,所以加上了nonempty参数,否则可以忽视。
!mkdir -p drive
!google-drive-ocamlfuse -o nonempty drive
顺利的话,到这里云盘挂载就完成了,默认挂载的云盘根目录路径是’drive‘,我们来检验一下(下图),可以看到输出的内容和云端硬盘中的文件是一致的。
import os
print(os.getcwd())
print(os.listdir('.'))
print(os.listdir('drive/Colab Notebooks'))
这样一来,我们就可以将文件放到云盘中供colab读取,或者将colab的运行结果输入到云盘中了。
6. 教学篇
colab作为一款在线编辑器,通过云计算让我们摆脱了装备的限制,不管什么设备,只要能连上谷歌的网络服务,就可以使用云端的服务器,处理云端的数据集;同时,对于工作地点不固定的人来说,也省去了反复配置环境和拷贝文件的麻烦。
然而,colab给自己的定位却是旨在帮助传播机器学习培训和研究成果,所以Colab还关联了一个非常优秀的机器学习学习平台。
点击上图中的“完整课程网站”链接进入教学网站,这里不仅有非常完善的学习资料,还可以根据每个人的基础制定不同的学习计划,更难得的是,无论视频、语音还是文字资料都可以选择中文模式(虽然中文朗读疑似语音合成)。
除了教学网站,colab还有大量交互式机器学习分析的端到端示例(seedbank)供学习和练习,所有seedbank中的项目都可以一键导入colab中运行(下图)。
关于Colaboratory今天就简单介绍到这里,明明是款编辑器,却集成了教学功能,真的堪称史上最强。由于篇幅有限,一些细节和功能都没有介绍,有兴趣的同学可以探索体验一下。
Python在线IDE | 谷歌Colaboratory云端IDE介绍的更多相关文章
- Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程
目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...
- python之平台独立的调试工具winpdb介绍
Winpdb is a platform independent graphical GPL Python debugger with support for remote debugging ove ...
- Python中模块之os的功能介绍
Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...
- Python在线聊天软件(Tkinter)
1.python2.7下安装 apt-get install python-tk 主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 1.Python Socket:2.Pytho ...
- 白月黑羽Python在线教程
推荐白月黑羽Python在线教程 白月黑羽 站在初学者的角度为大家安排了Python学习教程,帮助大家迅速掌握程序开发技能. http://www.python3.vip/doc/tutorial/p ...
- Python爬虫教程-34-分布式爬虫介绍
Python爬虫教程-34-分布式爬虫介绍 分布式爬虫在实际应用中还算是多的,本篇简单介绍一下分布式爬虫 什么是分布式爬虫 分布式爬虫就是多台计算机上都安装爬虫程序,重点是联合采集.单机爬虫就是只在一 ...
- Python 在线笔试
1. 循环输入输出交互 Python在线笔试琐碎 求两个整数 A+B 的和. while True: try: (n, m) = (int(x) for x in raw_input().split( ...
- Python 学习笔记1 安装和IDE
前面的话 现在随着互联网的快速发展,对测试人员的代码要求也越来越高.有种逐步往全栈开发人员发展的趋势. 越来越多的手工测试被自动化取代. 对于测试人员,学习一门开发语言迫在眉睫. C#, JAVA, ...
- 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?
大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...
随机推荐
- jquery ajax实现文件上传
test5.html <html> <head> <meta http-equiv="Content-Type" content="text ...
- Sign on Fence(连续的长为W的一段中最小的数字的最大值)
题目链接:http://codeforces.com/problemset/problem/484/E 题意:给你个n,n个木板都有高度,宽度都为1 ,给你两个数[l,r]和一个w,求在[l,r]区间 ...
- 关于vsftpd连接出现“响应: 530 Permission denied”的坑
在设置vsftpd.conf文件中的变量 anonymous_enable=YES 需要使用用户进行登录,如果conf文件内缺少下列三行中的任何一行都需要补充完整,不然就会出现 “响应: 530 Pe ...
- 使用java操作elasticsearch之与es简历连接
Elasticsearch 的 Java 客户端非常强大:它可以建立一个嵌入式实例并在必要时运行管理任务. 运行一个 Java 应用程序和 Elasticsearch 时,有两种操作模式可供使用.该应 ...
- 如何为我们的程序编写开发文档——Java文档注释
Java文档注释是用于生成Java API文档的注释,通过在程序中的类.属性.方法部分加上注释,就可以用javadoc命令生成漂亮的API文档,是程序员进阶的必备技能. 注意,文档注释只说明紧跟其后的 ...
- Initialization of bean failed; nested exception is java.lang.
网上搜寻各种解说,applicationContext-hibernate.xml 配置错误,jar冲突等等 现场错误图: 解决方法: asm-attrs.jar cglib-nodep-2.1_3. ...
- Linux动态库和静态库
Linux下动态库查看办法:nm -D libavformat.so Linux下静态库查看办法:ar -t libavformat.a ------------------------------- ...
- codeforces 668C - Little Artem and Random Variable
题目链接:http://codeforces.com/contest/668/problem/C --------------------------------------------------- ...
- dependencies 和 starter
以 spring-cloud-alibaba-dependencies-1.5.0.RELEASE 为例: <dependency> <groupId>com.alibaba. ...
- vue封装element中table组件
后台系统,table被用的次数比较多,所以决定提出来作为组件 1.新建一个Table.vue文件 <!--region 封装的分页 table--> <template> & ...