位置: 编程技术 - 正文

python使用PyCharm进行远程开发和调试(pycharm如何使用)

编辑:rootadmin

推荐整理分享python使用PyCharm进行远程开发和调试(pycharm如何使用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python+pycharm,pycharm怎么用python,python+pycharm,pycharm pyd,pycharm使用pypy,pycharm使用技巧,pycharm使用pypy,pycharm使用pypy,内容如对您有帮助,希望把文章链接给更多的朋友!

背景描述

有时候Python应用的代码在本地开发环境运行十分正常,但是放到线上以后却出现了莫名其妙的异常,经过再三排查以后还是找不到问题原因,于是就在想,要是可以在服务器环境中进行单步跟踪调试就好了。

然而,在服务器系统上安装一个IDE肯定是不现实的;通过SSH远程到服务器端,采用pdb进行调试虽然可行,但是操作还是较为繁琐,而且也不够直观。

那么,是否可以将开发环境中的IDE与服务器环境相连,实现利用开发环境的IDE调试服务器环境中运行的程序呢? 答案是肯定的,这就是远程调试(Remote Debug)。

远程调试的工作原理

远程调试的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,实现原理都基本相同,这里采用PyCharm进行说明。

在远程调试的模式下,PyCharm(IDE)扮演服务端(Server)的角色,而运行在远程计算机上的应用程序扮演客户端(Client)的角色。正因如此,进行远程调试时,需要先在本地开发环境中设定端口并启动IDE,IDE会对设定的端口开始监听,等待客户端的连接请求;那远程计算机中的应用程序又是怎样与IDE建立通讯连接的呢?

针对远程调试功能,PyCharm提供了pydevd模块,该模块以pycharm-debug.egg的形式存在于PyCharm的安装路径中。远程计算机安装该库文件后,然后就可以调用pydevd.settrace方法,该方法会指定IDE所在机器的IP地址和监听的端口号,用于与IDE建立连接;建立连接后,便可在IDE中对远程在远程计算机中的程序进行单步调试。

使用PyCharm进行远程开发和调试

你是否经常要在Windows 7或MAC OS X上面开发Python或Web应用程序,但是它们最后需要在linux上面来运行呢? 我们经常会碰到开发时没有问题但是到了正式的Linux环境下面却出现问题。那么怎样保证开发环境跟运行环境的一致呢?

通常有两种方法解决。一种是使用PyCharm内置支持的Vagrant,这个教程可以参考Vagrant开发环境配置。 不过很遗憾的是我自己在试验过程中启动VirtualBox虚拟机时候老是报错,暂时还没解决,读者可以自己试着测试看行不行。 第二种方式就是通过PyCharm的远程解释器加上文件同步功能,实现本地编辑代码->同步到服务器->通过远程debug来调试测试程序。目前我选择的是第二种,虽然比第一种更笨拙点。

远程调试的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,实现原理都基本相同,这里采用PyCharm进行说明。

远程服务器的同步配置

远程服务器IP地址...,开启ssh服务,安装python版本2.7。我用一个在PyCharm里面的core-python项目来做演示。

首先我们需要配置PyCharm通服务器的代码同步,打开Tools | Deployment | Configuration

点击左边的“+”添加一个部署配置,输入名字,类型选SFTP

确定之后,再配置远程服务器的ip、端口、用户名和密码。root path是文件上传的根目录,注意这个目录必须用户名有权限创建文件。

然后配置映射,local path是你的工程目录,就是需要将本地这个目录同步到服务器上面,我填的是项目根目录。 Deploy path on server 这里填写相对于root path的目录,下面那个web path不用管先

如果你还有一些文件或文件夹不想同步,那么在配置对话框的第三个tab页“Excluded path”里面添加即可,可同时指定本地和远程。

还有一个设置,打开Tools | Deployment | Options,将”Create Empty directories”打上勾,要是指定的文件夹不存在,会自动创建。

python使用PyCharm进行远程开发和调试(pycharm如何使用)

上传和下载文件

有几种方法可以实现本地和远程文件的同步,手动和当文件保存后自动触发。这里我选择了手动,因为自动触发比如影响性能,PyCharm会卡,感觉不爽。

手动上传方式很简单,选择需要同步的文件或文件夹,然后选择 Tools | Deployment | Upload to sftp(这个是刚刚配置的部署名称)

下载文件也是一样,选择 Tools | Deployment | Download from sftp

比较远程和本地文件

有时候你并不确定远程和本地版本的完全一致,需要去比较看看。PyCharm提供了对比视图来为你解决这个问题。

选择Tools | Deployment | Browse Remote Host,打开远程文件视图,在右侧窗口就能看到远程主机中的文件

选择一个你想要对比的文件夹,点击右键->Sync with Local,打开同步对比窗口,使用左右箭头来同步内容。

上面是服务器与本地对比,那么本地文件通服务器对比,就先在PyCharm里面选择文件或文件夹,然后右键->Deployment->Sync with deployed to即可

PyCharm远程调试

在PyCharm中进行远程调试有两种选择:

使用远程的解释器 使用Python调试服务器

这里简单起见我只演示第一种,使用远程解释器,也就是使用服务器上面安装的python解释器。

配置远程Python解释器

选择File | Settings,选择Project | Project Interpreter,然后在右边,点击那个小齿轮设置,如下

然后点击”Add Remote”,填写主机的ssh配置

如果之前配置过SFTP的话就直接选“Deployment configuration”,然后选择刚刚的模板名称就可以了,由于我上面配置过就直接选模板, 这里请仔细看我的Python解释器是虚拟环境virtualenv,这个要在服务器上面先创建好虚拟环境。

开始调试

完成之后选择这个远程的解释器作为工程的解释器即可,然后配置一个运行实例,打断点调试。 这里我以另外一个django工程为例来说明,名字为zspace,因为用一个web工程来说明更具代表性。

选择“Run/Debug Configuration”,添加一个“Django server”,然后配置像下面这样写

请注意图中标出的几个点,具体什么意思就不用多解释了吧,^_^

然后你就可以像本地调试一样打断点做调试了。这个步骤太简单就不截图了,记得修改源码后同步到服务器继续下一次的调试。

标签: pycharm如何使用

本文链接地址:https://www.jiuchutong.com/biancheng/372154.html 转载请保留说明!

上一篇:python中文分词教程之前向最大正向匹配算法详解(python中文分词库)

下一篇:Python实现1-9数组形成的结果为100的所有运算式的示例(python,数组)

  • 个人所得税应如何缴纳
  • 会计报表编制有哪些标准
  • 税务信用级别为m级
  • 办公费专票怎么做账
  • 买电脑所有配件
  • 发票报送失败怎么弄
  • 科技公司的成本如何核算
  • 房企预收账款什么时候结转
  • 跨年的材料专票怎么做会计分录?
  • 存货盘点科目
  • 企业交税前可以扣除的费用
  • 资产负债表预收预付账款怎么填
  • 应纳税所得额的计算公式
  • 企业资产业务收购税务处理怎么做?
  • 实收资本退还
  • 公司筹建期的个税怎么交
  • 律师事务所个人所得税
  • 网络科技公司会计核算及账务处理
  • 现金流量表的余额和资产负债表货币资金是不是一定相等
  • 财产转移数据缴费怎么交
  • 分期收款什么是分期还款
  • 种植业土地租赁计入哪个科目
  • 如何突出显示一行中的最小值
  • 电脑打字不显示文字选项
  • 贷款房屋评估费用
  • 增值税价外费用怎么算
  • 小规模纳税人补缴企业所得税分录
  • laravel 自定义类
  • 达特穆尔动物园
  • 软件是无形的,可见的物理实体
  • bit/ttagapp
  • 尚品汇在哪
  • 通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容
  • 小企业会计准则应付税款法
  • js array.fill
  • discuz管理中心登陆
  • 耕地税税率是多少
  • 欠对方钱对方公司已注销
  • 企业的净利润率
  • 企业从银行借款会导致其营运资本
  • 金蝶k3如何设置现金流量表取数公式
  • 计提折旧的固定资产全年平均总值怎么算
  • 营运资产周转次数计算公式是什么意思
  • 个人独资企业购入设备可以一次性计提吗
  • 餐饮毛利率多少为合理范围
  • 资产减值准备的计提影响递延所得税资产吗
  • 企业所得税纳税申报表
  • 农业用地租赁是免税的吗
  • 房租季度付款是几个月
  • 红字申请单如何打印出来
  • 用银行存款支付本季度短期借款利息
  • 卖旧固定资产计入哪个科目
  • 银行承兑的购买
  • 机器折旧科目
  • 跨年度退货可以不退款吗
  • 如何登录网络?
  • 通过MySQL优化Discuz!的热帖翻页的技巧
  • sql server随机数函数
  • 系统停止工作
  • 怎么才能使牙齿变白
  • centos6 grub
  • w10 xbox
  • ScanMailOutLook.exe - ScanMailOutLook是什么进程 有什么用
  • Android GBK与UTF-8
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
  • js datetime
  • unity开发用macbook怎么样
  • node发送邮箱
  • 用简单的方法做好玩的手工视频教程
  • js加载3d模型
  • unity备份工程
  • android 高德地图收费
  • js基于什么
  • python中私有函数调用方法解密
  • 发票查询结果打印怎么弄
  • 贵阳北控水务电话客服电话
  • 租车费为何不能抵扣
  • 江苏税务登记证查询
  • 山东省地方税务局公告2018年第6号
  • 湖北省税务局税务纪检委员时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设