Pycharm远程连接服务器项目 - 实践

news/2025/11/21 22:39:43/文章来源:https://www.cnblogs.com/ljbguanli/p/19254700

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权限来运行代码。

*否利用Sudo来运行代码就是在添加远程Python Interpreter的时候,有一个选项来确认

很多教程这时会无脑告诉你要把他勾选上,但是不告诉你为什么,所以记得如果你的服务器不是自己做主的话,一定不要勾选这个

因为你都获得不到Sudo权限,更何况Pycharm了,他会报错Can’t obtain python version,这时候如果你刚才设置编码格式为GBK的时候,就会出现一堆报错乱码,很不容易找到问题所在。

4.接下来我们要设置本地与远程同步的项目文件夹

默认是放在一个/tmp/pycharm_project_283此种路径,这个路径是临时的,将来很容易出点疑问就找不到。

这里需要把这个路径和刚才我们在SFTP配置中映射到的服务器端的项目文件夹)就是Mapping的路径(也就设置的一样。

5.点击Finish,完成配置,这时我们的远程Python解释器就成功配置好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django项目前端模版文件,在pycahrm无法使用ctrl+alt+l格式化代码的解决办法

闲话少说, <!DOCTYPE html> <html> <head><title>修复后的重置代码</title> </head> <body><h1>PyCharm 格式化问题修复示例</h1><h2>问题代码(导致格…

北大六院后看又相

我的双相:情绪高:应对低落的情绪

TPAMI 2025 | 从分离到融合:新一代3D场景技术建立双重能力提升!

TPAMI 2025 | 从分离到融合:新一代3D场景技术建立双重能力提升!2025-11-21 22:28 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…

详细介绍:后端开发常用Linux命令

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

QT:Qt5.14向文档输出表格--编译异常信息

QT向文档输出表格:输出近5年的高考信息统计表 22:29:34: Starting D:\Demo\QT5.14\CH12\CH1402\build-WordWritetable-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\debug\WordWritetable.exe ... QAxBase::dynamicCallHel…

《程序员修炼之道》阅读笔记5

《程序员修炼之道》第五章"弯曲,或折断"阅读笔记 解耦与得墨忒耳法则 解耦是构建灵活、可维护系统的核心原则。书中提出的得墨忒耳法则(Law of Demeter)为降低模块间耦合提供了明确指导:对象的方法应只调…

java面向对象知识补充

static静态变量补充知识:static静态变量:数据只需要一份,且需要被共享时(访问,修改)例如,记录全局某个数量。 实例变量:每个对象都要有一份,数据各不同。(普通定义)静态方法静态方法可以用来设计工具类。工…

团队作业 3 - 教学课件和班级管理系统 需求改进 系统设计 - WAR

一、需求 & 原型改进(20 分)课堂讨论问题及修改(5 分)问题 1 修改 1课件格式支持单一(仅支持 PPT/PDF) 增加视频(MP4)、音频(MP3)格式课件上传与在线预览支持成绩统计维度单一(仅平均分) 新增最高分、…

win11下载安装python,命令提示符输入python,打开Microsoft store界面,解决方案

win11下载安装python,命令提示符输入python,打开Microsoft store界面,解决方案1.找到python安装路径, C:\Users\33723\AppData\Local\Programs\Python\Python314 C:\Users\33723\AppData\Local\Programs\Python\Py…

卷积神经网络的引入3 —— MLP 与 CNN 在更大数据集上的性能对比实验

卷积神经网络的引入3 —— MLP 与 CNN 在更大数据集上的性能对比实验 在前两篇文章中,我们分别验证了:MLP 对平移等扰动非常敏感,而 CNN 具备更好的鲁棒性 在 Fashion-MNIST(低维灰度图)下,MLP 与 CNN 的表现差距…

全网都在找的Nano Banana Pro API 来了!便宜稳定0.15/张

Nano Banana Pro(Gemini 3 Pro Image)是Google基于Gemini 3 Pro开发的新一代图像生成与编辑模型,它不仅在图像质量上达到了新的高度,更在文字渲染、多图像融合和实时信息整合方面带来了突破性的进展。本文将带你全…

通过DataReader获取sql查询的字段元数据信息

原理 应用程序调用 GetSchemaTable()↓ ADO.NET 驱动程序生成元数据查询SQL↓ 发送到数据库服务器执行↓ 数据库返回结果集架构信息(不包含实际数据)↓ ADO.NET 解析架构信息并构建 DataTable↓ 返回包含完整列信息的…

Docker命令入门

Docker命令入门1. 使用容器运行 Nginx 应用 1.1 使用 docker run 命令运行 Nginx 应用 1.1.1 观察下载容器镜像过程查找本地容器镜像文件执行命令过程一:下载容器镜像 $ docker run -d nginx:latestUnable to find im…

2025.11.21 - A

今天形势与政策,听了一些国际形势,收获颇丰

2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT程序

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P7960 [NOIP2021] 报数__洛谷题解

P7960 [NOIP2021] 报数 题目描述 报数游戏是一个广为流传的休闲小游戏。参加游戏的每个人要按一定顺序轮流报数,但如果下一个报的数是 \(7\) 的倍数,或十进制表示中含有数字 \(7\),就必须跳过这个数,否则就输掉了游…

The 5W2H Problem-Solving Method

The 5W2H Problem-Solving Method https://www.msicertified.com/wp-content/uploads/2024/02/The-5W2H-Problem-Solving-Method.pdf 出处:http://www.cnblogs.com/lightsong/本文版权归作者和博客园共有,欢迎转载,但…

题解:SP5830 ALTPERM - Alternating Permutations

题意:给你 \(K\) 个下标,保证 \(A_1=1,A_K=N\),且对任意的 \(i<N\) 有 \(A_i<A_{i+1}\)。 如果一个排列,在下标 \(A_1\) 到 \(A_2\) 处单调递增,在下标 \(A_2\) 到 \(A_3\) 处单调递减,在下标 \(A_3\) 到 …

图床创建:github+Picgo+obsidian 带有同步删除的自动上传

最近一直在做DL部分的学习笔记,一个比较麻烦的地方就是我一直用的obsidian做笔记内容,在博客园导入随笔后,图片的链接一直是我的本地路径,自然无法显示,于是我只好在导入随笔后再把图片一张张上传到博客园的图床上…