一分钟搞定pychram远程调试和同步代码
首先说一下需求,否则很多人都不知道pycharm这个远程同步和调试到底是干嘛使的。
需求很简单,我想要在本地的windows机器上跑一个程序,但是程序运行会加载一些很占内存的树型数据结构,称其为tree;这些tree的大小有20G,需要全部加载到内存当中才能够使的程序跑起来,这下完了,我的计算机配置内存才8G,如果tree都加载到内存中肯定会爆掉。因为公司服务器的内存为90G,所以完全可以用其来加载tree。但是其中一个问题是我可以将代码传送到公司服务器上,然后在其上面跑,但是一旦我需要修改代码或者调试代码时候就显得无能为力了,因为服务器没有装pycharm,也没有装可视化的桌面环境。所以如果我能在windows的pycharm能够对linux上的程序进行调试,并且windosw端一旦修改代码还可以同步到linux上,这样就很完美了。正好pycharm本身就有这个功能,为的就是方便大家在linux上开发程序。接下来我将用非常简短的步骤来实现上面的需求,我在看上面参考网址中其他的人写的教程时候感觉都很麻烦,啰里啰嗦,而且逻辑混乱。本来很简单的步骤,弄得复杂无比,坑人!!!
这里我再稍微啰嗦一下pycharm的远程调试原理,其实很简单,我们的python运行是依赖解释器的,解释器包编译器和虚拟机,为了理解简单起见,可以直接将解释器理解为一个可以将我们写的代码转换为cpu可以识别的二进制代码,并可以将这些二进制代码运行的东东。pycharm其实是可以选择不同的解释器的,默认情况下是选择本地安装的解释器,但是如果我们给pychram配置了一个服务器端的解释器,并将本地的代码和服务器端的代码做了一个映射后,那么pycharm就可以加载服务器端的解释器来运行服务器端的代码,这样就相当于在本地的pycahrm上看到服务器端的程序运行情况,即远程调试目的就达到了;
1、准备工作,本地为windows7系统,pycharm为专业版,社区版是没有远程调试的功能的。服务器为centos系统(我们暂且称其为z服务器),首先我需要先获取服务器端python解释器所在的路径:
首先进入服务器的python,然后运行:
[root@localhost mnt]# python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'/home/mnt/anaconda3/bin/python'
>>>
可以看到k服务器上的python解释器的路径为:/home/mnt/anaconda3/bin/python
接下来直接配置远程的解释器:
file-setting-project,然后点击interpreter,然后点击右上角的齿轮图标后,会显示Add,

点击Add会跳出如下界面:选择SSH 解释器这一栏,然后配置服务器端的ip,用户名,密码即可;

点击确定后,需要将上面服务器端的python解释器路径输入其中,然后还需要配置Sync folders,这个路径就是本机的代码文件夹和服务器端的代码文件夹,要对应好。另外对于Automacitally upload那个不要勾选。

到此其实整个环境就配置完成了。
接下来我们只需将本地代码上传到服务器端即可:
这里我们如果想上传new这个文件夹,需要在projecet这个栏位中右键,然后点击 Deployment upload to选择上传的服务器即可,这样就将代码上传到上面配置的路径中了;
如果我们想要调试代码,则还在编译器那一栏选择 服务器端的编译器,然后确定即可。接下来就按照本地的调试代码方法调试即可。

下面我总结一下可能遇到的问题:
有的时候解释器配置好了,但是pycharm右下角会有一个 event log,点击之后会发现
Cant get remote credentials for deployment server root @192.000.000.00 的提示:

这个报错提示是没有获取远程开发环境的许可,需重新再次配置一下:
首先 file-setting,点击红色区域按钮,

选择show all
选择当前解释器:

点击红色区域小笔头重新进行配置:

首先我们看到 红色区域中填写的配置信息是正常的,接下来我们看一下 SSH Credentials这一栏:

发现是空的,所以我们要将其进行重新填写一下,即可;
此外还要注意一点:如果我想要同步本地的文件夹 file下的所有文件到服务器端,首先应该先在服务器端建立一个file文件夹,然后本地工程中右击 file文件夹上传到服务器端的file文件夹下即可,同步是不会在服务器端新建一个当前同步的文件夹的,必须手动在服务器端建立一个相同名字的文件夹才行!!!
参考网址:
https://www.cnblogs.com/Alier/p/8536123.html Pycharm远程连接服务器,并在本地调试服务器代码
https://blog.csdn.net/five3/article/details/78615589 Pycharm配置远程调试
https://zhuanlan.zhihu.com/p/36843200 PyCharm远程调试代码(有点过时了)
https://juejin.im/post/5b08dae651882538b978dcb3 Python远程调试图文教程(一)之Pycharm Remote Debug(内容很多)
https://blog.csdn.net/qq_24193303/article/details/80902322 机器学习中 如何使用 Pycharm 将代码上传到远程服务器上 侧重代码上传
一分钟搞定pychram远程调试和同步代码的更多相关文章
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)
前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...
- 一分钟搞定AlloyTouch图片轮播
一分钟搞定AlloyTouch图片轮播 轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹.除了一般的竖向滚动,A ...
- 五分钟搞定Go.js
五分钟搞定Go.js 1.基于html5~因为Go.js是一个依赖于HTML5特性的JavaScript库,所以需要确保您的页面声明它是一个HTML5文档,当然需要加载库 <!DOCTYPE ...
- Spring Boot 返回 XML 数据,一分钟搞定!
Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定! ...
- zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》
本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图 zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...
- zookeeper核心-zab协议-《每日五分钟搞定大数据》
上篇文章<paxos与一致性>说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Bro ...
- 十分钟搞定pandas内容
目录 十分钟搞定pandas 一.创建对象 二.查看数据 三.选择器 十二.导入和保存数据 参考:http://pandas.pydata.org/pandas-docs/stable/whatsne ...
- HDFS-异常大全-《每日五分钟搞定大数据》
点击看<每日五分钟搞定大数据>完整思维导图以及所有文章目录 问题1:Decomminssioning退役datanode(即删除节点) 1.配置exclude: <name>d ...
随机推荐
- 8. docker image 的发布 与 docker registry 私有仓库
一.分享image 1.注册 登陆 docker hub https://hub.docker.com/ 2.在本地 使用 docker login 输入 注册的账号密码 进行登陆 3.使用 dock ...
- nm命令介绍
一.参考文章 网址1:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/nm.html 参考2: man nm 参考3:<linux ...
- Java8必知必会
Java SE 8添加了2个对集合数据进行批量操作的包: java.util.function 包以及 java.util.stream 包. 流(stream)就如同迭代器(iterator),但附 ...
- postman测试
Postman接口性能测试 1.从文件中获取参数,然后点击Runner 2.勾选测试用例,配置用例次数.参数文件.返回data等 3.点击run 测试用例 4.查看测试结果 5.测试接口:https: ...
- 阿里云 asp.net core nginx 单机部署
1. dotnet core 安装 https://www.microsoft.com/net/download#core 安装之前要安装依赖:yum install libunwind libicu ...
- saltstack的salt-api介绍
一.salt-api安装 yum install salt-api pyOpenSSL -y #pyOpenSSL 生成自签证书时使用 二.生成自签名证书(ssl使用) [root@master ce ...
- C3D使用指南
C3D GitHub项目地址:https://github.com/facebook/C3D C3D 官方用户指南:https://goo.gl/k2SnLY 1. C3D特征提取 1.1 命令参数介 ...
- eclipse安装tfs插件
Eclipse安装TFS插件 1.打开Eclipse.点击菜单栏上的 “Help”——>选择“Install New Software”. 2.在弹出框中输入点击“Add”. 3.在弹出框中 ...
- svn文件冲突,树冲突详解
解决冲突 偶尔,当你从版本库更新.合并文件时,或者切换工作副本至一个不同的 URL 时你会遇到冲突.有两种冲突: 文件冲突 当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突. ...
- 吴裕雄--天生自然C语言开发:数组
] = {1000.0, 2.0, 3.4, 7.0, 50.0}; ]; #include <stdio.h> int main () { ]; /* n 是一个包含 10 个整数的数组 ...