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 list转dict示例分享
Jan 28 Python
利用Python演示数型数据结构的教程
Apr 03 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
python学生管理系统
Jan 30 Python
Python 实现微信防撤回功能
Apr 29 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
Python批量启动多线程代码实例
Feb 18 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 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结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
浅析JS运动
2015/12/28 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
JS二分查找算法详解
2017/11/01 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python 搜索大文件的实例代码
2019/07/08 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
给朋友的道歉信
2014/01/09 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书