首先说一下需求,否则很多人都不知道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远程调试和同步代码的更多相关文章

  1. windows+mysql集群搭建-三分钟搞定集群

    注:本文来源:  陈晓婵   <  windows+mysql集群搭建-三分钟搞定集群   > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...

  2. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  3. 一分钟搞定AlloyTouch图片轮播

      一分钟搞定AlloyTouch图片轮播 轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹.除了一般的竖向滚动,A ...

  4. 五分钟搞定Go.js

    五分钟搞定Go.js  1.基于html5~因为Go.js是一个依赖于HTML5特性的JavaScript库,所以需要确保您的页面声明它是一个HTML5文档,当然需要加载库 <!DOCTYPE ...

  5. Spring Boot 返回 XML 数据,一分钟搞定!

    Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定! ...

  6. zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》

    本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图   zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...

  7. zookeeper核心-zab协议-《每日五分钟搞定大数据》

    上篇文章<paxos与一致性>说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Bro ...

  8. 十分钟搞定pandas内容

    目录 十分钟搞定pandas 一.创建对象 二.查看数据 三.选择器 十二.导入和保存数据 参考:http://pandas.pydata.org/pandas-docs/stable/whatsne ...

  9. HDFS-异常大全-《每日五分钟搞定大数据》

    点击看<每日五分钟搞定大数据>完整思维导图以及所有文章目录 问题1:Decomminssioning退役datanode(即删除节点) 1.配置exclude: <name>d ...

随机推荐

  1. one_day_one_linuxCmd---wget命令

    <坚持每天学习一个 linux 命令,今天我们来学习 wget 命令> Linux wget 是一个文件下载工具,它用在命令行下,使用也非常方便,不但体积小而且功能完善,并支持很多强大的功 ...

  2. VMware下的Ubuntu16设置连接主机网络,设置主机下可以通过xshell访问 VMware下的Ubuntu

    NAT模式连接 1. 2. 3. 4. 5. 6.

  3. CCPC2019网络赛

    2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 A 题意:找到最小的正整数 C 使得 (A^C)&(B^C) 最小. \(A,B \le 10^9\) 签到题.这个C取 A& ...

  4. 小白安装Android Studio

    原文 Android Studio 安装 步骤1 - 系统要求 可以在以下的操作系统开始 Android 应用程序开发: Microsoft® Windows® 8/7/Vista/2003 (32 ...

  5. 通过javascri实现输入框只能输入数字

    输入框只能输入数字 <input type="text" onkeyup="value=value.replace(/[^\d]/g,'');"> ...

  6. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_全局变量的妙用_遍历穿透

    1 比如我这边写了一个函数,这个函数中有一个变量作为参数,给定这个参数一个值,然后这个函数返回给我一个值.但是,我写这函数的时候,这个传参我不写到函数里面.可以通过全局变量的方式进行在外部穿透遍历. ...

  7. [LC] 348. Design Tic-Tac-Toe

    Design a Tic-tac-toe game that is played between two players on a nx n grid. You may assume the foll ...

  8. servlet打包成war

    1.maven pom文件里指定打包类型 2.jdk工具 进入servlet目录,执行jar -cf war名 *

  9. A. Coffee Break(思维题,类似于邻接表的head数组用法)

    题:https://codeforces.com/gym/101911/problem/A 题意:每天工作m分钟,每次喝coffee得间隔d分钟,然后给出n个数,每个数表示想在一天中的a[i]的时刻喝 ...

  10. SaaS|PaaS|iaas|

    生物医疗大数据:云物移大智 云计算的三种模式:SaaS|PaaS|iaas 互联网:计算机之间的网络 物联网:物品之间的网络 移动:5G的三个特点:快:密:稳 大数据:4v:volume数据量大:ve ...