【PyCharm教程】PyCharm 远程开发入门

您可以使用 SSH 连接连接到远程服务器来开发、运行和部署您的项目。
先决条件
在开始在远程机器上进行开发之前,请确保您具备以下条件:
- 远程机器(IDE 的目标)满足IDE推荐的最低要求。
由于 JetBrains Client 是一个瘦客户端轻量级应用程序,因此对磁盘空间和计算机资源的要求低于对主机的要求。
- 您已在 Linux 平台上安装了兼容的 SSH 服务器。
服务器部分是自包含的,因此不应安装特殊的依赖项。它也可以在任何
glibc
基于 Docker 的镜像上运行(也就是说,不在 Alpine 上)。
- Linux 平台具有任何最新的 Linux AMD64 发行版,例如 Ubuntu 16.04+、RHEL/Centos 7+ 等。目前还没有 arm64 支持。我们建议使用具有 2 个以上内核、4GB+ 内存和 5GB+ 磁盘空间的机器。
- 您需要在远程主机上启用sftp子系统。在当前的实现中,我们将它用于后端部署。
JetBrains 网关
JetBrains Gateway 是一个轻量级的启动器,它将远程服务器与您的本地计算机连接起来,在后端下载必要的组件,并在JetBrains Client中打开您的项目。
您可以将 JetBrains Gateway 用作独立启动器,也可以用作 IDE 的入口点以连接到远程服务器。
启动 JetBrains Gateway 并连接到远程服务器
- 下载并安装JetBrains Gateway 应用程序。
或者,您可以通过远程开发选项从 IDE 的欢迎屏幕访问 JetBrains Gateway。
- 在远程开发向导中,单击通过 SSH 连接。
您还可以单击使用链接连接到远程主机并输入您之前生成的链接,以连接到 Code With Me 会话或远程服务器。
- 在向导的下一页上,指定要通过其连接到远程服务器的 SSH 配置。
或者,单击以打开SSH 配置对话框并配置 SSH 设置。
在SSH 配置对话框中,添加以下信息:
- Host:指定远程服务器的地址。
- Port:指定 SSH 端口,默认为
22
. - 本地端口:指定传出端口。
例如,
TCP 10.101.0.1:50705->13.49.137.87:22 (ESTABLISHED)
。 - 用户名:指定将用于连接到远程服务器的用户名。
身份验证类型:选择以下身份验证方法之一:
- 密码:使用密码访问主机。要在 PyCharm 中保存密码,请选中保存密码复选框。
- 密钥对(OpenSSH 或 PuTTY):通过密钥对使用SSH 身份验证。要应用此身份验证方法,您必须在客户端计算机上拥有私钥,在远程服务器上拥有公钥。PyCharm 支持使用OpenSSH实用程序生成的私钥。
指定存储您的私钥的文件的路径,并在相应的字段中输入密码(如果有)。要让 PyCharm 记住密码,请选中Save passphrase复选框。
- 解析配置文件 ~/.ssh/config:如果您希望 JetBrains Gateway 使用该
.ssh/config
文件,请选择此选项。
- 测试连接:点击此按钮查看连接是否建立。
- 连接参数:使用此部分配置连接的附加参数。
- HTTP/SOCKS 代理:使用此部分配置代理设置。
单击OK保存更改并返回Welcome to JetBrains Gateway对话框。
单击检查连接并继续检查连接是否建立。
- 在下一页上,指定要下载到远程服务器的 PyCharm 版本。JetBrains Gateway 显示可供下载和已安装的 IDE 版本的列表。
您还可以使用“其他选项”来设置IDE 安装程序的替代来源。
下载到本地计算机的JetBrains Client版本始终与远程 IDE 版本匹配。
默认情况下,下载的 PyCharm 位于远程服务器上的以下文件夹中:~ /.cache /JetBrains /RemoteDev /dist。但是,您可以通过以下步骤更改它并将 PyCharm 安装到自定义位置:
- 单击其他选项并选择自定义安装路径选项。
- 在安装路径字段中添加安装所需的位置。
在远程主机上添加项目的路径。
单击下载并启动 IDE。
JetBrains Gateway下载 IDE,并在JetBrains Client中打开您的远程项目。连接显示在JetBrains Gateway窗口中,您可以从该窗口连接到其他 IDE 或禁用连接。默认情况下,此窗口对托盘隐藏。
打开最近的项目
- 在JetBrains Gateway向导中,从左侧的选项中选择SSH 。
- 在搜索字段中输入您的项目名称以快速导航到它。
如需快速访问终端,请单击。
停止正在运行的实例
- 在JetBrains Gateway向导中,从左侧的选项中选择SSH 。
- 当您的远程会话处于活动状态时,项目旁边会显示正在运行的指示器。
单击项目旁边的 并选择停止实例以停止该项目的远程会话。
您还可以选择从最近的项目中删除以完全删除页面上列出的项目。
在手动启动的远程 IDE 上连接到远程项目
如果您已经在远程服务器上安装了 PyCharm,您可以手动启动它并连接到在该 IDE 中启动的远程项目。它的工作方式与JetBrains Gateway相同。
如果您的公司有自定义编排,或者您的远程 IDE 自动启动,请使用此方法。
简而言之,该过程可以描述为“在远程IDE中启动后端项目->选择后端生成的连接链接之一->在本地机器上打开它”。
运行远程 IDE 的主脚本是"remote-dev-server.sh",位于解压后的 IDE 的 "bin" 子目录中。
如果网关之前安装了后端,默认路径是“/home/your_system_user/.cache/JetBrains/RemoteDev/dist/”
请记住,连接绑定到特定项目。要连接到另一个远程项目,您需要配置一个新的连接。
连接到远程 IDE
- 确保您已在本地计算机上下载并安装了带有此捆绑插件的独立或 IDE。
- 确保您与远程计算机及其上的 PyCharm IDE 建立了 SSH 连接。
在远程服务器的终端中,运行以下命令:
remote-dev-server.sh run /path_to_project/ --ssh-link-host host_server_address --ssh-link-user remote_side_user --ssh-link-port ssh_connection_port
参见示例:
如果您不传递参数,脚本将使用默认参数:端口 22,系统用户的用户名和来自“主机名”命令的主机。
~/PY-213.5744.248/bin/remote-dev-server.sh run ~/home/jetbrains/PythonProjects/SampleApp/ --ssh-link-host ec2-13-50-136-85.eu-north-1.compute.amazonaws.com
如果项目成功启动,作为输出,您会在终端 3 中收到链接:
- 加入链接:tcp://127.0.0.1:5990...[ ] - 包含远程 IDE 现在正在侦听的本地地址和端口。
要使用它,请确保可以通过此本地地址访问远程计算机 - 例如,对于具有转发/开放端口的内部 Docker IDE。
检查“ssh -L”以获取详细信息。
- http 链接:https://code-with-me.jetbrains.com/remoteDev...[ ] - 包含有关您的主机端口用户、IDE 及其版本的信息。
在本地浏览器中打开时,它会显示一个欢迎页面并尝试使用预填充的连接设置值调用本地网关应用程序。
如果在本地计算机上找不到网关应用程序,您将能够从欢迎页面下载它。
- 网关链接:jetbrains-gateway://connect#idePath... [ ] - 还包含有关您的主机端口用户、IDE 及其版本的信息。
在本地浏览器中打开时,它会直接启动本地网关应用程序,而不会出现欢迎页面。
- 复制生成的链接并将其粘贴到您的本地浏览器并允许它启动Open JetBrains Gateway
- 所有这些链接也可以在已经启动的 JetBrains Gateway 中打开。
为此,在网关欢迎屏幕上,将链接粘贴到“连接到正在运行的 IDE”字段中,然后单击连接。
PyCharm 下载所需版本的 JetBrains Client 并在其中打开远程项目。
通过空间连接
您可以在远程服务器上执行自定义编排,并使用例如 Docker 文件或任何其他适合您的实践的自动化。这可能是每晚创建一个新的虚拟映像,获取空环境,并检查最新的源代码,并在早上准备好一个全新的干净映像。
但是,如果您在Space工作,与 JetBrains Gateway 的集成可以让您在配置可用于软件开发的开发环境中自动化所有流程。
Space 为您自动执行以下流程:
- 创建远程虚拟机
- 使用适当的库和工具启动 Docker 映像
- 下载并预热后端 IDE,以便您可以轻松打开项目并立即开始编码。
Space 集成仅在 JetBrains Gateway 安装程序中可用,在 PyCharm 中不可用。
通过空间连接
- 启动JetBrains 网关。
- 在 JetBrains Gateway 起始页面上,选择JetBrains Space并单击Connect to Space。
- 使用您的凭据登录 JetBrains Space。
- 在浏览器中单击继续并确保您已连接。
单击允许返回JetBrains Gateway。
- 在JetBrains Gateway中,单击浏览开发环境。
- 在 Space 中,配置您要使用的开发环境。
- 找到您要远程打开的项目,然后单击Open in IDE。
- 在打开的对话框中,在Select IDE下拉列表中,选择PyCharm with Gateway,根据需要配置其他选项,然后单击Create。
- 在打开的页面上,单击Open JetBrains Gateway。
JetBrains Gateway 启动,下载所有必要的后端组件,并使用您的项目打开 JetBrains Client,您可以在其中进一步工作。
连接到 Gitpod
JetBrains Gateway 支持与Gitpod集成,这是一个用于自动化开发人员环境的开源编排和配置平台。
Gitpod 在 JetBrains Gateway 中作为一个插件提供,您可以使用它来连接到现有的 Gitpod 工作区或创建一个新的工作区并在 PyCharm 中使用它。
连接到 Gitpod 上的工作区
- 启动JetBrains 网关。
- 从左侧的选项中选择远程开发。
- 在Install More Providers部分,找到Gitpod并单击Install Plugin。
添加了已安装的插件,您可以在“远程开发”节点以及“安装更多提供程序”部分中找到它。
- 插件安装完成后,在右侧的选项中,找到Gitpod并点击Connect to Gitpod。.
- 在打开的窗口中,选择要使用的 IDE。
如果您需要切换到Gitpod
仪表板、阅读 Gitpod 文档或从 Gitpod 注销,请单击。
- 单击新建工作区。
JetBrains Gateway 将您连接到浏览器中的 Gitpod 工作区。Gitpod 准备工作区并显示有关在 JetBrains Client 中打开工作区的通知。
在身份验证对话框中单击允许,然后单击是。
建立连接并在 JetBrains Client 中打开包含项目的工作区,您可以在 IDE 中进一步工作。
创建的工作区将添加到“最近的工作区”部分。如果您有现有的工作区,它们将被添加到最近的工作区列表中,您可以随时通过单击所需工作区的连接来连接到它们。
安装插件
您可以在远程服务器上安装所需的插件。请注意,每个项目都会安装插件。每次为新项目创建远程连接时,都需要安装所需的插件。
根据您在远程服务器上下载 PyCharm 的场景,您可以通过命令行安装插件,也可以使用远程项目的 UI 进行安装。
通过命令行安装插件
如果您在远程服务器上手动配置PyCharm,请使用以下步骤添加插件:
- 在JetBrains Marketplace页面中,找到所需插件的页面,选择“版本”选项卡,然后单击任何版本以复制要安装的插件的
pluginId
(简称,例如)。org.rust.lang
- 打开远程服务器,转到项目所在的 PyCharm 实例,并为其下载并安装第三方插件。
默认情况下,下载的 PyCharm 实例位于以下目录中:
~/.cache/JetBrains/RemoteDev/dist
添加以下命令:
bin/remote-dev-server.sh installPlugins PROJECT_PATH pluginId
(wherePROJECT_PATH
是您的远程项目的路径,并且pluginId
是您从JetBrains Marketplace页面获得的 ID。)
安装后,解压下载的插件存档。
默认情况下,安装的插件放在后端的以下文件夹中:
~/.cache/JetBrains/RemoteDev-IU/PROJECT_PATH/plugins/
- 继续启动 JetBrains Gateway并使用远程安装的插件打开远程项目。
通过 UI 安装插件
如果您使用 JetBrains Gateway将 PyCharm 下载到远程服务器,请使用以下步骤安装插件。
- 在JetBrains Client中打开一个远程项目。
- 按Ctrl+Alt+S打开 IDE 设置并选择Plugins On Host。
- 像在常规 PyCharm 项目中一样下载所需的插件。
- 下载并启用插件后,单击确定以保存更改。
该插件是远程安装的。但是,请记住,插件是按项目安装的。
在远程项目中工作
在JetBrains Client中打开一个远程项目,就像在您的本地 PyCharm IDE 中打开它一样。您可以像任何其他本地项目一样开发它:编辑代码、运行应用程序、调试和部署。
将 SDK 添加到打开的项目中
当您第一次打开项目时,PyCharm 会显示一条通知,建议您添加项目 SDK。
- 打开远程会话。
- 从主菜单中,选择文件 | 项目结构。
- 在Project Structure对话框中,选择Project,然后从可用选项中配置项目的 SDK。
- 单击确定以保存更改。PyCharm 将配置好的 SDK 下载到远程服务器。下次打开项目时,下载的 SDK 将在远程会话中自动使用。
添加虚拟机选项
您可以调整远程项目的 VM 选项,特别是如果您想-Xmx
在处理较大项目时增加内存大小。您需要执行这些操作并将更改保存在远程服务器上。
- 从主菜单中,选择帮助 | 编辑自定义 VM 选项(在主机上)。
- 编辑
pycharm64.vmoptions
文件。
例如,将-Xmx2048
选项更改为-Xmx3072
。
- 在远程服务器上重新启动 IDE 以查看更改。
关闭远程开发会话
- 单击
以关闭远程会话窗口。
您将返回到JetBrains Gateway欢迎屏幕,您可以在其中使用“最近的 SSH 项目”页面重新连接到您的远程会话或停止正在运行的实例。
当您在本地关闭项目时,它不会在远程主机上自动关闭。
创建多个连接
您可以创建多个连接到同一远程主机和同一版本的 IDE。您还可以与不同的 IDE 版本和远程主机建立连接。
- 连接并打开一个远程会话。
- 由于 JetBrains Gateway 在您连接到远程服务器后一直处于活动状态,因此您可以单击其图标打开JetBrains Gateway欢迎屏幕并配置其他连接。
如果您连接到相同的IDE 版本,则JetBrains Client将作为同一进程的实例打开。如果您连接到不同的远程主机或IDE 版本,将启动不同的远程会话。
您不能从不同的计算机连接到同一台服务器。例如,如果您与您的团队共享远程服务器并希望处理同一个项目,请等到服务器空闲或从连接方请求Code With Me 链接以加入远程会话。
后端控制中心
当您使用远程项目时,您可以检查远程服务器的状态。这意味着您可以检查后端的 CPU 负载、磁盘和内存消耗。您还可以直接从 JetBrains Client 添加堆大小并重新启动远程后端。
打开远程项目后,您的后端名称、内存和延迟指示器会显示在主工具栏上。
使用控制中心窗口
- 在 JetBrains Client 的主工具栏上,单击远程服务器的名称以打开“连接详细信息”窗口。
在性能选项卡上,检查 CPU 负载、内存消耗和磁盘空间的状态。
- Ping:这是一个时间指示器,显示使用 RD 协议在 JetBrains Client 和远程服务器之间传输数据所需的时间。
- CPU负载:这是CPU执行多少进程的指标。
- 内存 (RAM):这是一个显示远程服务器 RAM 状态的指标。如果达到内存限制,您需要访问远程服务器并增加 RAM 或终止消耗它的进程。
- 磁盘:这是远程服务器使用了多少磁盘空间的指标。
- 单击“输出”选项卡以查看来自远程服务器的日志文件的最后 2500 个符号。
此信息可帮助您查看日志文件的结尾以及可能发生的潜在错误或问题。
- 如果要增加堆内存大小,请单击“设置”选项卡并在“最大堆大小”字段中,添加所需的内存量,然后单击“保存并重新启动”以应用更改。或者,如果您不想立即重新启动后端,可以单击保存。
如果您在使用 JetBrains Client 时遇到问题,您可以打开后端 IDE 的主工具窗口并尝试在那里解决您的问题。
访问后端 IDE UI
- 在 JetBrains Client 的主工具栏上,单击远程服务器的名称以打开“连接详细信息”窗口。
- 在Connection Details窗口中,单击
并选择Show Main Window。
您可以通过选择收集主机和客户端日志选项来收集数据并创建日志文件。
后端 IDE 的主窗口被投影。如果您在 JetBrains Client 中无法做到这一点,现在您可以使用它来访问远程设置并配置各种远程选项。
请记住,远程服务器是 Linux,因此您用于配置远程设置的快捷方式必须是 Linux 的。
SSH 转发设置
SSH 转发设置允许您使用 SSH 密钥转发来验证从远程服务器对 Git 存储库的访问。或者,您可以使用 SSH-agent 帮助程序来实现相同的结果。
访问 SSH 转发设置
- 按Ctrl+Alt+S打开 IDE 设置并选择工具 | SSH 转发。
- 从右侧的选项中,选择启用 SSH 代理转发,然后单击确定以保存更改。