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实现简单QQ单用户机器人的方法
Jul 03 Python
Python导入txt数据到mysql的方法
Apr 08 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
django初始化数据库的实例
May 27 Python
numpy matrix和array的乘和加实例
Jun 28 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
python保留小数位的三种实现方法
Jan 07 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 Python
Python可视化工具如何实现动态图表
Oct 23 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 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连mysql和oracle数据库性能比较
2006/10/09 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
克隆javascript对象的三个方法小结
2011/01/12 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
微信小程序仿美团城市选择
2018/06/06 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
美国NBA官方商店:NBA Store
2019/04/12 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
思想作风纪律整顿心得体会
2014/09/04 职场文书
房屋出租委托书格式
2014/09/23 职场文书
五年级小学生评语
2014/12/26 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang