使用PyCharm建立本地与远程服务器连接同步代码
参考博客:使用pycharm同步本地与服务器代码
官方文档:PyCharm Deployment部署
- 使用场景以及效果: 使用WinSCP、MobaXterm等客户端可以方便地与远程Linux服务器连接,进行文件上传下载等基本项目管理。但是编写、修改代码还是使用本地PyCharm或VS Code等IDE更加方便。本教程实现了本地与远程代码的自动同步,以及进一步的,在本地控制服务器环境下的代码调试和项目部署。
- 前置条件: 1. 本地PyCharm 2023.3.2 (Professional Edition)开发环境,2. 可通过ssh访问的Linux服务器
- 场景设定: 项目已经在远程服务器,且在conda环境中(可选,什么是conda环境,如何使用),需要从本地连接并从服务器拉取同步。如果项目已在本地需要上传同步到服务器,只需交换步骤1.1&1.2,其余操作相同。
1. 确认本地和服务器项目路径
1.1 服务器项目路径
后面会用到。比如我的服务器路径是/data/hbw/ChatTTS-main/
1.2. 在本地合适的位置创建对应的项目文件夹
名字随意(路径后面也会用到)
比如我的本地路径是D:\Hermi\project\ChatTTS
2. SSH连接服务器并添加Python解释器
2.1. 右键以PyCharm项目打开刚新建的空文件夹
2.2. 打开设置setting
点击添加+,选择SSH
指定服务器ip、端口、用户名
输密码
点击next,连接并检查,成功的话会显示success
2.2. 指定解释器创建方式以及绑定项目路径,关键!!
如图,提供了三种解释器创建方式。第一种和第三种都是创建隔离的开发环境,具体不同参考virtualenvs和conda有什么关系
开头提到服务器的项目已经在conda环境中了,因此可以直接选择第三个。此时PyCharm会自动查找服务器已存在的conda环境,选择相应的环境即可。当然,也可以修改conda路径,然后点击右边的Load Environment
手动查找。如果没有隔离环境,选择第二个System Interpret。这里建议使用第三种。
设置同步文件夹,把之前的两个路径复制进去。可以指定多个同步文件夹(这里我没试过,下文还有个mapping功能,也可以映射多个目录,欢迎补充)
添加成功!
3. 配置configuration和option
设置远程代码或文件发生变化时提醒。
此时如果在远程修改了代码,或新建/删除了文件,本地PyCharm会提醒,需要手动merge、download或overwrite
4. 最后一步,拉取同步代码!
现在本地的操作都会被同步到服务器对应路径了!注意,本地的output/
文件夹和服务器的asset/
文件夹没有被同步,详见文末Q1。创建空项目时自动生成的main.py
被我手动删除了。
在File Transfer中可以查看文件发送日志
END
可能遇到的问题
Q1:并不需要同步项目中的所有文件,比如模型权重文件(.pt/.bin/.safetensors),怎么办?
A1:按路径排除,或按文件后缀排除
Q2:如何在PyCharm终端里运行服务器代码?
(TBD)