使用PyCharm进行远程开发和调试

本文详细介绍如何利用PyCharm的远程解释器功能实现在本地编辑代码并同步至Linux服务器,进而进行远程调试。包括配置SFTP同步、比较远程与本地文件、设置远程Python解释器等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在使用python开发代码时,在linux上直接用vi编辑器开发操作起来会不是很方便,可以通过PyCharm的远程解释器加上文件同步功能,实现本地编辑代码->同步到服务器->通过远程debug来调试测试程序

1.     远程服务器的同步配置

远程服务器IP地址172.16.29.17,开启ssh服务,安装python版本2.6。我用一个在PyCharm里面的scripts项目来做演示。

首先我们需要配置PyCharm通服务器的代码同步,

 打开Tools | Deployment | Configuration

点击左边的“+”添加一个部署配置,输入名字,类型选SFTP


确定之后,配置远程服务器的ip、端口、用户名和密码。root path是文件上传的根目录,注意这个目录必须用户名有权限创建文件。

 

然后配置映射,local path是你的工程目录,就是需要将本地这个目录同步到服务器上面,我填的是项目根目录。 Deploy path on server 这里填写相对于root path的目录,下面那个webpath可以先不管


如果还有一些文件或文件夹不想同步,那么在配置对话框的第三个tab页“Excluded path”里面添加即可,可同时指定本地和远程。

还有一个设置,打开Tools | Deployment | Options,将”Create Emptydirectories”打上勾,要是指定的文件夹不存在,会自动创建。

2.     上传和下载文件

有几种方法可以实现本地和远程文件的同步,手动和当文件保存后自动触发。这里我选择了手动,因为自动触发比如影响性能,PyCharm会卡,感觉不爽。

 

手动上传方式很简单,选择需要同步的文件或文件夹,然后选择 Tools | Deployment | Upload to sftp(这个是刚刚配置的部署名称)

下载文件也是一样,选择 Tools | Deployment | Download from sftp

 

3.     比较远程和本地文件

有时候你并不确定远程和本地版本的完全一致,需要去比较看看。PyCharm提供了对比视图来为你解决这个问题。

选择Tools | Deployment | Browse Remote Host,打开远程文件视图,在右侧窗口就能看到远程主机中的文件


选择一个你想要对比的文件夹,点击右键->Sync with Local,打开同步对比窗口,使用左右箭头来同步内容。

上面是服务器与本地对比,那么本地文件通服务器对比,就先在PyCharm里面选择文件或文件夹,然后右键->Deployment->Sync with deployed to即可

4.     PyCharm远程调试

在PyCharm中进行远程调试有两种选择:

1.使用远程的解释器

2.使用Python调试服务器

这里简单起见我只演示第一种,使用远程解释器,也就是使用服务器上面安装的python解释器。

配置远程Python解释器

选择File | Settings,选择Project | Project Interpreter,然后在右边,点击那个小齿轮设置,如下

 

如果之前配置过SFTP的话就直接选“Deployment configuration”,然后选择刚刚的模板名称就可以了,由于我上面配置过就直接选模板(sftp_29.17_py)

点击上面的Create 在IDE配置中创建一个部署服务器的copy

 


5.     开始调试

完成之后选择这个远程的解释器作为工程的解释器即可,下面通过一个mysql备份脚本直接进行远程调试linux上面的python脚本。

可以看远程的备份调试信息可以在本地看到!

参考:https://blog.youkuaiyun.com/ll641058431/article/details/53049453

### LSTM的输入与输出机制 #### 输入结构 LSTM是一种特殊的循环神经网络(Recurrent Neural Network, RNN),其设计目的是解决传统RNN在处理长时间序列时存在的梯度消失或爆炸问题。LSTM通过引入门控机制来控制信息流,从而能够有效捕捉长期依赖关系。 对于LSTM而言,其输入通常是一个三维张量,形状为 `(样本数, 时间步长, 特征维度)`。具体来说: - **样本数**表示数据集中有多少条独立的时间序列。 - **时间步长**指每一条时间序列包含多少个时间点的数据。 - **特征维度**则代表每个时间点上的特征向量长度[^1]。 例如,在自然语言处理任务中,如果我们将一句话看作是一组单词组成的序列,则这里的“时间步长”就是句子中的词数量,“特征维度”可以是每个词经过嵌入层后的向量大小。 #### 输出形式 LSTM 的输出取决于具体的配置方式以及应用场景: 1. 对于单层 LSTM 来说,它会针对每一个时间步返回隐藏状态 \(h_t\) 细胞状态 \(c_t\) 。其中隐藏状态作为当前时刻该节点对外界表达的信息载体;而细胞状态内部存储着更深层次的历史记忆信息[^2]。 2. 当构建深层 LSTM 结构 (即堆叠多个 LSTM 层) 时,前一层的所有时间步输出将被送至下一层作为新输入继续传播计算直到最后一层结束为止。 3. 实际应用过程中往往还需要附加额外操作比如加入全连接层(FC),以便最终得到符合需求的目标值——无论是连续型变量还是离散类别标签等不同类型的任务目标都可以通过调整 FC 后面激活函数的形式达成目的。 4. 在某些特定情况下如仅关心整个序列最后一步的状态而非中间过程变化情况的话可以直接取最后一个时间步对应的 h_T 或 c_T 进行后续处理而不是保留全部历史记录下来。 5. 另外值得注意的是当涉及到多维或多模态数据源联合建模的时候可能还会存在更加复杂的组合模式比如说同时考虑视觉图像帧加上音频片段共同作用影响未来趋势走向等问题此时就需要灵活运用不同类型的编码解码器架构配合起来完成相应功能实现[^3]。 ```python import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.LSTM(units=64, input_shape=(None, feature_dim), return_sequences=True), tf.keras.layers.Dense(output_size, activation='softmax') ]) ``` 上述代码展示了一个简单的基于 TensorFlow/Keras 构造出来的带有单层 LSTM 单元并设置 `return_sequences` 参数为 True 表明希望获取每一时刻 t 所产生的隐含层状态 ht 给予下一个 Dense Layer 做进一步分类决策使用的例子。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值