使用Wing Pro在AWS上进行远程Python开发的详细指南

322 阅读5分钟

在这个Wing技巧中,我们将开始研究如何使用Wing Pro来远程开发运行在AWS实例上的Python代码。通过最小的配置,Wing Pro可以编辑、调试、测试、检查和导航驻留在AWS实例上的Python代码,就像它在本地主机上一样。

最低要求

你需要一个安装了Python的AWS实例,运行32位或64位Intel Linux,并且可以使用OpenSSH或PuTTY连接。建议在Windows上使用PuTTY,因为它往往容易出现较少的问题。为了配置Wing Pro来使用你的AWS实例,你将需要以下东西。

(1)用于连接AWS实例的用户名和静态IP地址或DNS名称。亚马逊Lightsail通常使用一个IP地址,而EC2和AWS的其他变体也可能提供一个DNS名称。静态IP地址在任何情况下都可以使用。

(2)从AWS下载的*.pem文件中的SSH密钥对。

如果你还没有安装Wing Pro,现在就下载吧。

设置AWS

如果你已经有一个AWS实例可以使用,你可以跳过这一部分。

亚马逊Lightsail是获得AWS实例的最简单方法,大约5分钟就可以完成。你将需要建立一个账户。然后创建一个Linux/Unix实例,选择 " 仅操作系统"选项和最新的Ubuntu或任何其他带有Python 2或3的Intel Linux。

在设置你的实例时,你可以在AWSSSH 密钥对 管理器下下载你的SSH密钥对。你需要在你的本地机器上,也就是Wing运行的地方,获得这个密钥,以便能够连接到这个实例。

实例创建后,它将保持一分钟左右的待定状态。 一旦它启动并运行,在AWS Lightsail管理区的网络标签下创建一个静态IP地址,并将其附加到你的实例上。

至此,你就拥有了在AWS上使用Wing Pro所需要的一切:(1)你下载的SSH密钥对,以及(2)用户名和IP地址,它们都显示在Lightsail实例管理页面上。

测试SSH连接

在尝试从Wing Pro中使用你的新实例之前,你应该先尝试用ssh或PuTTY的plink.exe在命令行中进行连接,以确保这些连接是有效的。这很重要,因为Wing会调用这些命令行来连接到实例。

OpenSSH

在使用ssh的Linux或macOS上,你需要使你的*.pemSSH密钥对文件只能被运行Wing的用户读取,例如用。

chmod 600 aws.pem

否则,ssh会拒绝它,认为它可能被破坏。

一旦完成,尝试按以下方式连接,用你下载的SSH密钥对的实际路径和你的实例的用户名和IP地址或DNS名称代替:

ssh -i /path/to/mykey.pem ubuntu@11.22.33.44

你会被要求将实例的身份添加到你的已知主机文件中,你应该通过输入"是"来完成。如果没有这样做,SSH将无法连接,Wing也将无法连接到实例。

PuTTY

在 Windows 上使用 PuTTY,你需要首先将 SSH 密钥转换为 PuTTY 可以使用的格式。这是通过启动puttygen,按下Load按钮来读取你从AWS管理网站下载的.pemSSH密钥文件,然后使用Save Private Key来编写一个.ppk文件。

然后你调用plink.exe连接到AWS实例,如下所示,替换成你下载的SSH密钥对的实际路径和AWS实例的正确用户名和IP地址或DNS名称。

plink.exe -i C:\path\to\mykey.ppk ubuntu@11.22.33.44

在你第一次连接时,你会被要求接受AWS实例的身份,这必须在Wing的远程开发支持与AWS实例一起工作之前完成。

创建一个Wing项目

现在你准备在Wing Pro中创建一个项目。这是通过项目菜单中的新 项目完成的。从主机下拉菜单中选择创建 配置。然后选择AWS作为远程主机类型,并输入远程主机的标识符(在Wing的用户界面中识别它的任何短字符串),以及用于连接到该主机的用户名和IP地址或DNS名称。

/images/blog/aws-1/new-project.png

如上面的例子,Python Executable通常是使用 默认值,它首先尝试python3,然后是python。如果Python不在你的AWS实例的PATH上,或者你想指定一个特定的Python可执行文件或激活一个虚拟环境,你可以在这里做。

你还需要将Wing指向你之前从AWS下载的SSH密钥对文件。 这在选项标签下使用 私钥字段完成,如下所示。

/images/blog/aws-1/private-key-file.png

在 "新建 远程 主机"对话框中按下"确定"将创建你的远程配置并在AWS实例上安装Wing的远程代理。

接下来,你可以通过选择或创建一个源目录继续完成项目的创建过程,然后可以选择创建一个新的Python环境来使用该项目。

测试一个Hello World

为了尝试在远程AWS实例上编辑和调试代码的一个简单例子,在实例上临时创建一个文件helloworld.py。 这可以通过右键点击Wing Pro中项目工具中的一个文件并选择创建 新 文件来完成。 输入文件名(在某些键绑定中,这是在Wing窗口底部的数据输入区)并在新文件中输入或粘贴以下内容。

import time
print("Hello World! {}".format(time.time()))

保存文件后,在编辑器中点击最左边的空白处,在第二行设置一个断点。

/images/blog/aws-1/breakpoint.png

然后从调试菜单中选择开始/继续来开始调试,或者使用工具栏中的绿色播放图标play

在启动过程中会有一点延迟,这取决于你与AWS实例的网络距离,但随后你应该看到Wing在断点上停止。

/images/blog/aws-1/breakpoint-stop.png

这里没有什么可看的,但你可以使用Wing Pro的调试 控制台,从工具菜单中,在暂停的调试进程的实时运行状态中探究一下。

/images/blog/aws-1/debug-console.png

一旦你继续调试,进程将退出并打印到调试 I/O工具。

/images/blog/aws-1/debug-io.png