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实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
python 的列表遍历删除实现代码
Apr 12 Python
Python实现二维有序数组查找的方法
Apr 27 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
Python实现自动发送邮件功能
Mar 02 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python global关键字的用法详解
Sep 05 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Pytorch之扩充tensor的操作
Mar 04 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
解决Python二维数组赋值问题
2019/11/28 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
体育专业个人求职信范文
2013/12/27 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
公司表扬信格式
2015/05/04 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang