pycharm 连接远程服务器

1 minute read

Published:

在写 python 项目时希望在本地编写代码,然后可以实时自动同步到远程服务器上进行运行,可以使用 pycharm 实现。

服务器属性配置

第一步:打开 Configuration

pycharm 菜单栏 -> Tools -> Deployment -> Configuration

第二步:配置 Connection

Type:SFTP
Root path:自定义服务器工作根目录
Web server root URL:不用填写

第三步:配置 Mappings

Local path:本地项目文件夹
Deployment path on server:(以 Root path 为根目录的)远程项目文件夹

注意:Root path + Deployment path on server 组成绝对路径,当你选择了 Root path 后,Deployment path on server 就不再需要加上 Root path 的路径。

第四步:配置 Excluded Paths

这里个人通常将实验结果文件设置为 Excluded Paths,因为在 Automatic Upload 的情况下删除本地的结果文件会导致服务器上的也被删除,有时候会比较危险,建议设置。

Local path:本地项目文件夹中不想被上传下载的文件或文件夹
Deployment path:(以 Root path 为根目录的)远程项目文件夹不想被上传下载的文件或文件夹

服务器功能使用

  • 查看和修改服务器上的文件

    pycharm 菜单栏 -> Tools -> Deplotment -> Browse Remote Host

  • 上传同步项目文件

    pycharm 菜单栏 -> Tools -> Deplotment -> Upload to server

  • 实时同步项目文件

    pycharm 菜单栏 -> Tools -> Deplotment -> Automatic Upload

  • 打开服务器终端

    pycharm 菜单栏 -> Tools -> Start SSH session

其他说明

上面的配置不涉及远程 python 解释器的使用,本地和远程使用了不同的 python 解释器,如果希望在远程服务器上使用和本地相同的解释器(注意是相同,而不是直接调用本地解释器),可上传 pycharm 创建的 venv 文件(如果你是在本地为当前项目单独创建了一个解释器的话),其 python 解释器位置为 venv\Scripts\python.exe,直接使用该解释器运行 python文件即可。

如果你在本地没有为当前项目单独创建了一个解释器的话,想使用本地的解释器可能需要上传想要的 python 到服务器上,貌似比较麻烦,在这里不过分深究。

另外若需要在本地运行服务器上的 python 解释器(是直接调用,而不是下载到本地)继续往下看 。

配置远程 python 解释器

第一步:打开 Preference (mac) / Settings (windows)

mac: pycharm 菜单栏 -> PyCharm -> Preference

windows: pycharm 菜单栏 -> File -> settings

第二步:配置 Project Interpreter

Project -> Project Interpreter -> Project Interpreter 右边的齿轮 -> Add

第三步:选择服务器

SSH Interpreter -> Existing server configuration -> Deployment configuration -> 选择刚刚配好的服务器 -> next

注意:如果这时候提示有选项是要 move 还是 copy,选择 move 即可。

提示:其实这一步可以看到左边可以配置各种环境的 Interpreter,按自己需要配置即可。

第四步:配置 SSH Interpreter

Interpreter:服务器中所要使用的 python Interpreter 地址
Sync folders:(以 Root path 为根目录的)远程项目文件夹

注意:如果前面配置服务器时写了 Root path,这里的 Sync folders 不需要加上 Root path

提示:python Interpreter 地址通常为 用户目录/anaconda3/envs/环境名/bin/python

第五步:应用 Project Interpreter

选择刚刚配置好的 Project Interpreter -> Apply

提示:可以看到这里的 Path mappings 已经变成了 Root path + Sync folders

参考资料及致谢

PyCharm 配置远程python解释器和在本地修改服务器代码