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解决Fedora解压zip时中文乱码的方法
Sep 18 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
python 函数中的内置函数及用法详解
Jul 02 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
Python json格式化打印实现过程解析
Jul 21 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 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连接mssql:pdo odbc sql server
2011/07/20 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
python调用windows api锁定计算机示例
2014/04/17 Python
python中from module import * 的一个坑
2014/07/20 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
销售员岗位职责范本
2014/02/03 职场文书
小学毕业演讲稿
2014/04/25 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
工作报告范文
2019/06/20 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
python 安全地删除列表元素的方法
2022/03/16 Python
Golang数据类型和相互转换
2022/04/12 Golang
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技