Pycharm配置远程调试的方法步骤


Posted in Python onDecember 17, 2018

动机

  • 一些bug由于本地环境和线上环境的不一致可能导致本地无法复现
  • 本地依赖和线上依赖版本不一致也可以导致一些问题
  • 有时一些bug跟数据相关,本地数据无法和线上数据一致
  • 有些三方平台会验证服务器的合法性或者异步回调结果,如微信支付,这时候本地无法测试

如上所诉,要是有一个很方便调试远程服务器的方法,岂不美哉。通过PyCharm我们可以很方便地实现远程调试,下面详细介绍下PyCharm这个牛叉的功能。

使用远程解释器

默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。

添加远程部署

打开pycharm,tools-->Deployment-->Configuration

Pycharm配置远程调试的方法步骤

点击左边“+”添加远程服务器,随便起个名字,选择SFTP

Pycharm配置远程调试的方法步骤

配置connection

Pycharm配置远程调试的方法步骤

配置Mappings

Pycharm配置远程调试的方法步骤

配置Excluded Paths(可选)

Pycharm配置远程调试的方法步骤

最后点击OK即可

再次打开部署选项,可以发现现在可以直接部署代码到服务器了,也可以直接下载带代码到本地,同时自动上传(Automatic Upload)是默认勾选的,我一般会把它去掉,防止一些本地测试代码上传上去

Pycharm配置远程调试的方法步骤

新增一个文件,查看deployment 选项,这时候就可以上传到远程服务器了

Pycharm配置远程调试的方法步骤

添加远程解释器

远程部署仅仅只是同步和拷贝文件,要真正实现远程调试还需要配置远程解释器

设置页面找到“Project Interpreter” --> 设置-->Add

Pycharm配置远程调试的方法步骤

选择“SSH Interpreter” --> "Existing server configuration" --> 选择刚才创建的部署配置,使用‘'Create“或者”Move“ 都OK

Pycharm配置远程调试的方法步骤

点击下一步,这时会进行连接远程服务器,稍等一会,会出现以下界面,稍微配置下,点击“Finish”即可

Pycharm配置远程调试的方法步骤

最后使用远程解释器,点击“OK”,返回到项目界面,等待同步完成即可

Pycharm配置远程调试的方法步骤

远程调试

这里根据自己的具体项目情况而定,我这里是 Flask+阿里云+nginx+运行脚本 的一个例子

新增一个 run configuration

Pycharm配置远程调试的方法步骤

Pycharm配置远程调试的方法步骤

Pycharm配置远程调试的方法步骤

运行脚本代码如下,这里使用了8000的端口

Host要配置为0.0.0.0

Pycharm配置远程调试的方法步骤

nginx 配置8000 端口

server {
  listen  8000 ;
  listen  [::]:8000 ;
  server_name _;
  root   /usr/share/nginx/html;
  access_log /var/log/nginx/access_8000.log main;
  error_log /var/log/nginx/error_8000.log;

  # Load configuration files for the default server block.
  include /etc/nginx/default.d/*.conf;
  location / {
		proxy_pass http://127.0.0.1:8000;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

  error_page 404 /404.html;
   location = /40x.html {
  }

  error_page 500 502 503 504 /50x.html;
   location = /50x.html {
  }
 }

要是使用阿里云,还需要安全组开放8000 端口 断点运行

Pycharm配置远程调试的方法步骤

Pycharm配置远程调试的方法步骤

出现上图所示的时候,恭喜你,你已经可以断点调试远程服务器了

我们打一个断点,然后试着访问一个API服务: xx.xx.xx.xx:8000/api/pages/b…

完美断上

Pycharm配置远程调试的方法步骤

补充说明

不建议在正式服务器使用这个功能,可以在测试服务器使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python两种遍历字典(dict)的方法比较
May 29 Python
跟老齐学Python之关于类的初步认识
Oct 11 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
用python打印1~20的整数实例讲解
Jul 01 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
python 多进程队列数据处理详解
Dec 23 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
Python解析、提取url关键字的实例详解
Dec 17 #Python
Django Rest framework之认证的实现代码
Dec 17 #Python
python web自制框架之接受url传递过来的参数实例
Dec 17 #Python
Django Rest framework之权限的实现示例
Dec 17 #Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 #Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 #Python
python使用插值法画出平滑曲线
Dec 15 #Python
You might like
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
webpack之devtool详解
2018/02/10 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
Python封装shell命令实例分析
2015/05/05 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python实现批量图片格式转换
2020/06/16 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
担保贷款承诺书
2015/04/30 职场文书
2015年路政工作总结
2015/05/22 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python