Pycharm远程连接服务器项目
一、使用xshell8连接虚拟机进行远程操作
Xshell是什么?
·是一款专业的 远程终端工具,简单说就是: “用它连服务器,就像在本地电脑上敲命令一样”。
比如通过 SSH 登录 Linux 服务器、管理网络设备(交换机、路由器)、传文件等。·Xshell针对个人/学校免费
XShell的安装及使用教程
1.进入官网进行下载,网址如下:
家庭/学校免费 - NetSarang Website
2.或者选择官网主界面进入,网址如下:
XSHELL - NetSarang Website
3.安装过程一路点击“下一步”就好了!
4.安装完成后,需要用户名和邮箱申请免费许可!(建议使用国外的用户名和邮箱,比如谷歌邮箱),填写完信息后官方会发一个邮件到对应邮箱,点击邮箱中的链接,即可完成申请,等下一次重启软件时即完成了注册。
5.重启进入软件,在最上面一行的菜单栏打开“帮助”-->“关于xftp”,查看是否激活成功,如显示Validated,则表示激活成功。
6.新建会话:
点击左上角的“新建”
7.在会话属性中,填写虚拟机的会话名称(自定义)、主机IP地址以及端口号(默认为22)。
8.再点击“用户身份验证”,填写用户名和密码。
9.点击进入创建的会话中,当出现Welcome 则表示服务器连接成功,则可以输入指令对服务器进行操作。
10.在XShell中使用的基本Linux指令来操作服务器
参考链接:https://blog.csdn.net/qq_48348861/article/details/135336285
·cd--更改目录
切换到主目录:cd
进入上层目录:cd ..
进入指定目录:cd /xxx(服务器使用一般就是进入home目录,然后在home目录中创建自己的文件夹)
·mkdir--创建文件夹
创建文件夹:mkdir xxx(尽量以自己名字缩写进行创建)
在当前目录下建立指定的嵌套子目录:mkdir -p this/that/theother
·文件夹的显示与查看
显示当前目录所有文件:ls
显示文件内容:cat xxx
查看当前路径:pwd
·rm--删除文件和目录
删除文件夹:rm -rf xxx
删除文件:rm xxx
删除空目录:rmdir xxx
删除该目录下所有文件:rm*
删除当前目录下所有以a开头的文件,并且在每次删除时,提示用户进行确认:rm -i a*
·虚拟环境的创建及进入(这里使用的是conda创建环境)
创建虚拟环境:conda create -n 环境名 python=3.7
激活进入虚拟环境:conda activate 环境名
退出虚拟环境:conda deactivate
查看所有虚拟环境:conda env list
卸载环境:conda remove -n 环境名 --all
直接执行py文件:python3 .py文件(python3 xxx.py)
·退出服务器与程序终止
退出服务器连接:exit
终止程序:ctrl+z
·clear--清屏(其实就是重新开启一页)
·ifconfig--查看服务器IP地址
·nvidia-smi # 查看GPU状态和CUDA版本(建议12.0+)
| **GPU型号** | NVIDIA GeForce RTX 3090(24GB显存) |
| **驱动版本** | 550.54.15(较新,支持CUDA 12.4) |
| **CUDA版本** | 12.4(支持较新的深度学习框架)| | **显存使用** | 251MiB / 24576MiB(仅用了约1%,基本空闲) |
| **温度/功耗** | 47°C / 28W(低负载状态,P8节能模式) |
| **运行进程** | 主要是图形界面进程(Xorg、gnome-shell、VS Code),无GPU计算任务 |
·gcc --version # 查看GCC版本
·你当前使用的 GCC 版本是 10.5.0,发布于 2022 年,属于 Ubuntu 20.04 LTS 的默认工具链。
·对于大多数 CUDA 12.4 和深度学习框架(如 PyTorch 2.x、TensorFlow 2.15+)来说,GCC 10 是兼容的。
·如果你打算编译某些较新的 CUDA 示例或自定义 CUDA 扩展,GCC 11 或 12 会更理想。但 GCC 10 不会导致兼容性问题,除非你要编译非常新的 CUDA 源码。
·查看当前文件夹下详细文件内容(包括权限、大小、修改时间)
ls -lh /home1/stu/
·如果还想看隐藏文件(以 . 开头的文件或文件夹)
ls -lah /home1/stu/
·如果你不确定自己在哪,可以用
pwd
二、Pycharm如何连接服务器
1.找到配置
点击Tools→Deployment→Configuration
*PyCharm必须是专业版
2.新增一个SFTP的连接
3.命名
4.设置SSH连接
·Host:服务器的地址(虚拟机中输入ifconfig可以查看)
·Port: (默认22)
·Username:虚拟机的用户名
·Authentication type:密码
*其中仅对此项目可见/Visible only for this project指的是:
是否在不同项目中共享这个SFTP配置,可以按需开启,
在SSH设置中输入服务器的IP地址,以及相应的用户名,就如同在XShell中连接服务器那样。
*如果是使用Windows连接Linux的话,
最好可以把Advanced中的编码从GBK改成UTF-8,
这样在报错的时候如果服务器那边返回的是中文的错误,Windows这边就不会显示乱码而找不到原因所在(血泪教训),而且如果遇到中文数据文件什么的与服务器也好沟通。
*(提前打开虚拟机)点击Test Connection,若弹出图下界面,则说明连接成功
5.测试连接
上述点击OK之后进入如下界面,然后点击Test Connection
6.配置同步内容
在Mappings/映射 页面中,配置本地项目和远程服务器项目的路径。
这部分的用处是将我们本地的文件夹和服务器上的项目文件夹联系映射起来,
所以这个地方我们要填入的是我们的项目文件夹,
而这里要注意的是要填入相对于Root Path的路径,而不是绝对路径,
比如说我在Root Path部分填入的路径是/nfs/users/xiaoming/jinrong_project,
而我真正的项目的绝对路径是/nfs/users/xiaoming/jinrong_project/Finance_Data,这时候我在Mapping的Deployment Path中填入的就是/Finance_Data,
第一行的Local Path默认是项目文件夹所在的本地目录。
这样的话,只要某一方对项目进行了修改,都可以手动进行同步。
Local path:本地项目路径
Deployment path:远程服务器项目路径
*Root Path:这个字段的意思是远程服务器的根路径,
比如说我把他设置为/home/a/,那就意味着我们把a这个文件夹当做了Pycharm所检测的根路径,将来的项目必须在a这个文件夹下面Pycharm才能检测得到。
*这里还有一个Autodetect的选项,他会自动选择主目录下的用户文件夹作为Root Path,如/home/xiaoming/,大家按需所取即可。
*原文链接:https://blog.csdn.net/qq_41983842/article/details/122969278
7.在终端打开SSH连接,选择自己已经设好的远程服务器进行连接
8.验证
若PyCharm的终端出现对应服务器的信息,说明已连接上远程服务器,那么就可以在此终端像在服务器终端一样进行操作了
9.同步代码
*需要注意的问题
在创建好SFTP配置后,我们想查看服务器文件的时候会发现右侧的Remote Host会显示Nothing to show。
这时候不要担心,如果目录没有配置错误就相信自己,把项目关掉然后重新打开,此时再查看服务器的文件就可以正常显示了。
点击Tools→Deployment→
若想要将本地代码同步到服务器,点击Upload to Ubuntu(Ubuntu是自己在上方设置的服务器的名称);
若想将远程服务器的代码拉取过来,点击Download from Ubuntu。
*为什么是灰色的?
1.部署路径必须是 “绝对路径” 或 “以 / 开头的服务器全路径”
你现在填的是/WKX/PhysGen3D-main
这是相对路径,PyCharm 会把它当成
$HOME/WKX/PhysGen3D-main
一旦解析失败,就把整行 Mapping 视为无效,于是上传/下载按钮全部灰掉。
改成(假设你确实想把文件放到 /home1/stu/wKX/PhysGen3D-main):
/home1/stu/wKX/PhysGen3D-main
必须以/开头。
2. Web 路径不能空着(2024 版新限制)
虽然你只是拿来做同步,不跑 Web,但 PyCharm 现在要求 Web path 字段不能为空,否则同样判定 Mapping 不完整。
随便填一个斜杠即可:
/
3. 如果仍灰,再做一次
Tools | Deployment | Browse Remote Host
在 Remote Host 侧边栏里确认能看到对应的文件,
然后直接从侧边栏拖文件到本地,PyCharm会强制刷新Mapping状态,灰色即消失。
10.给项目配置解释器
本节的前提条件是服务器上有正常的可以运行的Python环境。
类似于添加Pycharm的解释器环境,
·在Setting中找到Python Interpreter,点击右上方的小齿轮,选择Add。
在新弹出来的窗口中选择SSH Interpreter。
因为我们刚才配置SFTP的时候已经配置了SSH了,这时候我们就选择第二个选项Existing server configuration,选择我们刚才配置的SSH即可。
2.点击Next,在这一步我们需要让Pycharm找到服务器的Python在哪个地方,并且设置扫描的文件夹。
*如果不清楚服务器的Python安装在哪个地方,可以使用
which python
命令来查找所使用的Python位置。
我这里使用的是Anaconda中的虚拟环境,记得要查看是否是软连接,
比如说我这个找到的Python就是个软连接,、其真实文件指向的是python3.9。
(可以使用ls -l)
3.回到刚才的设置,我们在Interpreter中填入上述的Python路径,等待PyCharm完成SSH服务器的自省。
下面那个选项按需勾选(见下),其意思是使用Sudo权限来运行代码。
*在添加远程Python Interpreter的时候,有一个选项来确认是否使用Sudo来运行代码
很多教程这时会无脑告诉你要把他勾选上,但是不告诉你为什么,所以记得如果你的服务器不是自己做主的话,一定不要勾选这个!
因为你都获得不到Sudo权限,更何况Pycharm了,他会报错Can’t obtain python version,这时候如果你刚才设置编码格式为GBK的时候,就会出现一堆报错乱码,很不容易找到问题所在。
4.接下来我们要设置本地与远程同步的项目文件夹
他默认是放在一个/tmp/pycharm_project_283这种路径,这个路径是临时的,将来很容易出点问题就找不到。
这里需要把这个路径和刚才我们在SFTP配置中Mapping的路径(也就是映射到的服务器端的项目文件夹)设置的一样。
5.点击Finish,完成配置,这时我们的远程Python解释器就成功配置好了。