Pycharm配置远程调试的方法步骤
作者:adison 发布时间:2021-03-13 00:45:38
动机
一些bug由于本地环境和线上环境的不一致可能导致本地无法复现
本地依赖和线上依赖版本不一致也可以导致一些问题
有时一些bug跟数据相关,本地数据无法和线上数据一致
有些三方平台会验证服务器的合法性或者异步回调结果,如微信支付,这时候本地无法测试
如上所诉,要是有一个很方便调试远程服务器的方法,岂不美哉。通过PyCharm我们可以很方便地实现远程调试,下面详细介绍下PyCharm这个牛叉的功能。
使用远程解释器
默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。
添加远程部署
打开pycharm,tools-->Deployment-->Configuration
点击左边“+”添加远程服务器,随便起个名字,选择SFTP
配置connection
配置Mappings
配置Excluded Paths(可选)
最后点击OK即可
再次打开部署选项,可以发现现在可以直接部署代码到服务器了,也可以直接下载带代码到本地,同时自动上传(Automatic Upload)是默认勾选的,我一般会把它去掉,防止一些本地测试代码上传上去
新增一个文件,查看deployment 选项,这时候就可以上传到远程服务器了
添加远程解释器
远程部署仅仅只是同步和拷贝文件,要真正实现远程调试还需要配置远程解释器
设置页面找到“Project Interpreter” --> 设置-->Add
选择“SSH Interpreter” --> "Existing server configuration" --> 选择刚才创建的部署配置,使用‘'Create“或者”Move“ 都OK
点击下一步,这时会进行连接远程服务器,稍等一会,会出现以下界面,稍微配置下,点击“Finish”即可
最后使用远程解释器,点击“OK”,返回到项目界面,等待同步完成即可
远程调试
这里根据自己的具体项目情况而定,我这里是 Flask+阿里云+nginx+运行脚本 的一个例子
新增一个 run configuration
运行脚本代码如下,这里使用了8000的端口
Host要配置为0.0.0.0
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 端口 断点运行
出现上图所示的时候,恭喜你,你已经可以断点调试远程服务器了
我们打一个断点,然后试着访问一个API服务: xx.xx.xx.xx:8000/api/pages/b…
完美断上
补充说明
不建议在正式服务器使用这个功能,可以在测试服务器使用
来源:https://juejin.im/post/5c167ccb5188254fef232927


猜你喜欢
- 简述mat参照了函数设计,plot表示绘图的作用,lib则表示一个集合。今年在开源社区的推动下,Matplotlib在科学计算领域得到了广泛
- 今天研究了一下JS的用setAttribute方法实现一个页面两份样式表的效果,具体方法如下:第一步:在连接样式表的元素里定义一个id,例如
- js 日期 获取今天、昨天、明天第一个函数function getDay(day){ var today = ne
- 一、os函数目录1 os.access(path, mode) 检验权限模式2 os.chdir(path) 改变当前工
- 例如,在创建新表或更新现有表上的数据时,这些事件将存储在mysql binlog中,也就是MySQL数据库的二进制日志。二进制日志在MySQ
- 同时,关于datetime也是简单介绍。因为有很多东西需要自己去使用,去查帮助才最有效。例子:计算上一个星期五并输出。解答:import d
- open 遍历一个大日志文件使用 readlines() 还是 readline() ?总体上 readlines() 不慢于python
- 实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:SELECT出来str_replace替换UPDATE写入实际这样
- 本文实例为大家分享了python实现自动打卡小程序的具体代码,供大家参考,具体内容如下"""湖南大学疫情防控每
- 本文实例讲述了php将12小时制转换成24小时制的方法。分享给大家供大家参考。具体如下:php将12小时制转换成24小时制,输入格式为:02
- 比如代码 binfo = {'name':'jay','age':20,'pytho
- 1、基础概念什么是网络编程?指在网络环境中,如何实现不在同一物理位置中的计算机之间进行数据通信如果要保证数据通信顺利完成,则需要先了解如下几
- 如果当前绝对定位的元素需要透明(没啥内容、且不设置背景),背景元素有内容透出来的时候,IE6/IE7响应的不是期望的当前元素,而是背景元素。
- 如果直接执行SQL语句或者参数绑定则不用担心太多,如以下ORACLE存储过程 create or replace&nbs
- 本文为大家分享了童年掌机游戏,基于pygame实现打砖块的具体代码,供大家参考,具体内容如下项目背景: 小时候有过一个掌机游戏机,里面有俄罗
- 就在刚才,我给GMAIL安装了Twitter插件。安装完插件后,Gmail提示我要连接Twitter的账号才能使用:我顺着提示操作下去,就看
- CSS制作滑动折叠的文字效果,可以用于二级导航菜单的制作,不错的下拉菜单。<!DOCTYPE html PUBLIC "-/
- 1.安装python windows版本好:python-2.5.1.msi2.安装pycrypto windows版本号:py
- 1. MySQL索引概述1.1 索引的概念什么是索引,索引就是排好序的快速查找数据结构。1.2 索引的特点索引的优点1.提高数据检索的效率,
- 介绍本文主要介绍Python中列表生成式的基本知识和使用生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10