前阵子有个朋友问我一个 Python 相关的问题,然后我把解决方案简单用代码写了一下发给他,结果他说跑不起来,我就很纳闷,确认了下他说 Python 库也都装了,但是运行的时候还是会报库找不到。果不其然,经过一段时间沟通发现,它的机器上装了两个 Python 环境,装 Python 库的时候是用的 pip 安装的,它对应了一个 Python 环境,但是运行的时候却是用的使用的 python3 命令却是对应另外一个 Python 环境,理所当然就跑不通了。这个问题其实挺常见的,有时候跟对方说检查下 Python 环境路径什么的,但是对方有时候并不知道怎么做,或者直接得再告诉他用 python3 -m pip install ...
命令来装包。
另外我还有个需求是,我写了一些代码,想直接把运行结果和代码发给别人看,一种方法可以直接借助于 GitHub,代码放上去,然后让对方 Clone 下来再运行。对方也得配置下相关的环境才能正确跑起来。另一种方法则是打包 Docker 镜像,但是这也得额外花一些时间。有没有更好的方案解决这个问题呢?
上面这就是两个问题:
- 环境不一致的问题
- 环境共享的问题
这俩问题有通用的解决方案吗?有!答案就是云 IDE。有了云 IDE,不仅以上两个问题可以解决,甚至都不用自己配置开发环境了,我们只需要一个浏览器就能在线编辑代码,同时这个 IDE 还能分享给他人,他人打开之后,看到的就是和我一模一样的内容,甚至还可以看到我正在编写代码的实时效果。
美哉美哉!
今天就给大家介绍一款云 IDE,是华为家的,叫做「华为云 CloudIDE」,我试用了一下感觉还不错,它的官方介绍页面是这样的:
官方介绍如下:
通过华为云 CloudIDE,您仅需一个浏览器就可以编辑、调试、运行您的代码。
开发环境通常包括各种配置文件、特定的语言、框架版本、以及其他个人设备等等一系列个人配置。当您开发一个新的项目或者测试一些程序时,不得不对已有的个人配置做相应的调整。或者,您可以通过 CloudIDE 将个人的偏好设置转移到云端。CloudIDE 将存储项目设置,实现您与他人共享,并通过浏览器授予访问的权限。您可以将所有文件保存在云环境中,并通过各种访问设备操作管理它们。开发环境在云端,您可以实现代码阅读、编写、调试、运行,也可以将代码存入代码仓库,随时、随地、随心!
和我刚才说的就是一样的,利用它我们可以解决诸多问题:如环境配置、环境统一、环境共享的问题,同时我们还可以随时随地编辑代码,丝毫不受机器的限制,上云之后,一切都是那么方便。
好,这里我就带大家来体验下「华为云 CloudIDE」吧。
首先,目前「华为云 CloudIDE」是可以免费体验的,每个人每天有 120 分钟的免费体验时间,如果要获得更好的体验可以创建付费实例。
目前免费体验需要有这些规定:
尊敬的用户,您已经开通 CloudIDE 服务,免费体验需要遵守如下约定:
- 每天的免费体验时间为 120 分钟,少于 5 分钟不能创建新的体验;
- 每个实例可使用时长为 60 分钟,60 分钟后,实例将会被删除,并且数据将会被删除;
- 同一时间只能体验一个实例,打开第二个实例将会自动关闭第一个实例;
- 免费体验不能保证最佳使用体验,您可能需要排队等候,付费使用可以获得更好的体验
完全没问题,体验完全足够了。
我这里操作的 URL 是 https://devcloud.cn-north-4.huaweicloud.com/cloudide/trial,大家可以注册个华为云账号就能看到对应的入口页面了,就是上文发的图。
由于我对 Python 比较熟悉,那么我就来体验一个 Python 环境吧,找到下方的 Python 环境,然后点击「免费体验」。
这时候环境就会变成「启动中」的状态,如图所示:
然后接下来我们就会进入到云 IDE 的环境,等待一顿初始化之后之后,我们就可以看到如下页面,如图所示:
嗯?有没有熟悉的感觉?
没错,这和 VS Code 可太像了,简直就是一个在线版的 VS Code。不过仔细看看,其实还是有些不一样的,比如左上角的 Logo,插件仓库以及一些菜单选项。可以说是 VS Code 的魔改版。
我们看下左侧栏其他的菜单,搜索、版本控制、调试没啥好说的,看看插件仓库吧,打开之后是这样的:
这里我们可以看到「华为云 CloudIDE」已经为我们预装了一些插件,如 Python。另外下方还有一些推荐的插件,例如 Huawei Cloud Toolkit,这些插件的安装方式和 VS Code 是一模一样的。
接下来我们再看看菜单的一些配置,随便挑几个看看吧:
几乎所有功能菜单和 VS Code 是一样的,不过「华为云 CloudIDE」添加了一些入口,比如 Close Instance 等等,点了之后就会关闭当前云 IDE 实例。
OK,接下来我们再回到代码看看,看看它给初始化了个什么,代码结构是这样的:
就是一个基本的 Flask 的 Hello World。
那来跑跑试试吧,点击右上角的运行按钮,如图所示:
哦,居然报错了,内容如下:
这里报错说找不到 flask 这个包,那很明显就是没安装了,正好我们可以看到 requirements.txt 定义了相关的依赖环境,那我们来手动安装下吧。
在当前命令行下输入:
1 |
pip3 install -r requirements.txt |
运行结果类似如下:
看起来不错,另外可以观察到它是从 https://repo.huaweicloud.com/repository/pypi/ 这里下载的 Python 包,速度也挺快的。简直是意外收获呢,又发现了一个不错的 Pypi 加速镜像。
顺便看看 pip.conf 配置吧:
1 |
cat ~/.pip/pip.conf |
结果如下:
1 |
[global] |
一目了然,可以看到 pip 全局配置了一个加速镜像,index-url 配置为了 https://repo.huaweicloud.com/repository/pypi/simple,这个是可以公开访问的,所以以后
我们装包的时候就可以这么来装了:
1 |
pip3 install requests -i https://repo.huaweicloud.com/repository/pypi/simple |
速度还是挺不错的,美滋滋,意外收获。
OK,切回正题,这时候我们已经装完环境了,重新运行 app.py,这时候就可以发现运行成功了,结果类似如下:
可以看到它就在 8080 端口上运行了一个服务,那咋访问呢?
在运行的同时,还弹出了这么一个窗口,如图所示:
似乎是提示我们可以注册一个外部端口将服务暴露出去,我们点击 Register 和 OK。
接下来 OK 按钮就变成了 Access 按钮,如图所示:
还带了一个二维码和 Copy 按钮,我们 Copy 一下看看,我 Copy 之后的 URL 是 https://sermgcaktl-8080-cce-5.lf.templink.dev/,然后我在浏览器中打开,显示如下:
很不错啊,这是自动给我们生成了一个域名,然后还把服务暴露出去可供访问了,挺好。
接下来我们再看看 Workspace 吧,切换下代码文件夹,点击 File - Open ,可以看到如下页面:
可以看到当前打开的是 python3-sample 这个文件夹,那能换其他文件夹吗?我在上方输入个根目录 / 看看,结果如图所示:
出现了熟悉的 Linux 文件树结构,那可以断定这其实就是一个 Linux 环境了,那岂不是干啥事都行了。
找到 /home/user/projects 目录,看起来是用来专门存放项目的目录。
另外我再试试能否随便打开一个 GitHub 上的项目吧,比如在控制台进入刚才这个目录,然后 Clone 一个项目,命令如下:
1 |
cd /home/user/projects/ |
OK,简单 Clone 了一个 Scrapy 项目,成功!如图所示:
然后打开下这个项目,如图所示:
打开 Terminal,安装下依赖:
1 |
pip3 install scrapy pymongo |
另外这个项目依赖于 MongoDB,不过我们这里仅仅测试,可以取消它的依赖,setting.py 中注释掉如下代码:
1 |
ITEM_PIPELINES = { |
然后接下来可以运行如下命令启动爬虫了:
1 |
scrapy crawl quotes |
这时候就可以看到爬虫就成功运行了,如图所示:
完美,Clone 的项目也成功运行了,美滋滋。
最后我们看看这个退出之后怎么样,先复制下当前的 URL,我的 URL 是 https://ide.devcloud.cn-north-4.huaweicloud.com/cce-5/sermgcaktl/#/home/user/projects/ScrapyTutorial,然后我们直接关掉当前页面选项卡,然后重新进入,看看现在的运行状态还在不在。
牛逼!重新进入之后还是原来的样子,控制台依然还是开的,跑的结果也依然有!
很好!
那这个环境怎么分享给别人呢?看了下「华为云 CloudIDE」是支持分享功能的,这里可以进入到 CloudIDE 的首页,点击管理,然后通过白名单或者黑名单的方式添加用户就可以了。
好了,到现在为止「华为云 CloudIDE」就体验完了,感觉整体上还是挺不错的,大家也可以来体验试试看吧!