快上网建站品牌

13518219792
  • 首页
  • 关于我们
    • 如何选择
    • 选择理由
  • 案例作品
    • 网站建设
    • 优化推广
    • 微信开发
    • 电商托管
  • 服务项目
    • 网站建设
    • 移动端/APP
    • 微信/小程序
    • 技术支持
    • 其它服务
  • 建站知识
    • 成都网站建设
    • 成都做网站
    • 成都网站设计
  • 网站售后
    • 成都网站运营
    • 成都网站维护
    • 成都网站推广
  • 客服中心
  • 全国分站

飞翔的灵蛇——PyCharm远程调试

公司要用Python开发一个基于Linux的系统,我是不可能忍受把我的“高端Mac”换成矮挫丑的Linux的(更何况还要考虑团队中有很多同事用Windows)。借助PyCharm的远程调试可以实现“本地写代码,远程Debug”

配置PyCharm远程调试

选择Project Interpreter的时候我们是可以选择“Add Remote”

打开之后是一片“新大陆”

我们先通过SSH配置,输入服务器的地址,账号密码,勾选服务器端的Python路径。确定之后PyCharm会把在远程机器上安装Python Helpers(默认安装在Home目录下的.pycharm_helpers,比如我用的是fireflyc所以目录是/home/fireflyc/.pycharm_helpers)。

这里最关键的一个步骤——Path Maping。它是本地路径和服务器路径的映射关系,当我们在本地执行Debug的时候代码其实是在远程Linux上执行的,这必须解决一个问题——如何把代码同步到远程Linux上。最简单的办法是通过VMware装一个虚拟机,用"文件共享"的方式。

设置完成后需要在Path Maping中新增映射关系

LocalPath是工程的根目录,Remote Path是共享文件夹所在目录

执行一下,“如丝般顺滑”,还能打断点。

远程调试的原理

远程调试不是什么黑魔法,它是IDE工具发展的一种倾向——细分前端和后端。前端偏向于完成代码编辑、呈现工作相当于设置一个框架;后端则是针对某个语言的语法加亮、代码提示、自动完成、代码格式化、调试。比如visual code在这一点上表现的就非常明显,VSC只提供了一个“编辑器”的功能,每个语言的加亮、代码提示、格式化、调试都是通过“插件”实现的。这个插件不是传统意义上的“静态”的,而是一个独立的进程。visual code称这个为language server,并且制定了一个Language Server Protocol的规范。有兴趣的朋友可以去看一下或者尝试自己写一个插件。

PyCharm还没有这么彻底,它只是把Debug部分做成一个单独的Server。去看一下“神秘”的.pycharm_helpers就一目了然了

PyCharm远程调试的时候我们偷偷的看一下进程

真相大白了。原理其实很简单,调试的时候PyCharm通过SSH执行远程Linux上的pydev,这个进程会执行本地的python代码。pydev和Pycharm会有网络通讯用来传递“打断点、取消断点、单步执行”之类的调试动作,端口是——45140。

自动化开发环境

解决了远程调试的问题后顺带可以解决一下“开发环境”的问题;每个人都去新建一台虚拟机会比较麻烦,***可能选择的发行版本千奇百怪。所以通过vagrant来管理“开发虚拟机”是一种很好的实践。

这段脚本会生成一个ubuntu/trusty64镜像的虚拟机(ubuntu 14),使用的是virtualbox;把虚拟机的8000端口映射成本机的8000端口;设置共享目录(我的Vagrantfile在工程根目录下的dev文件夹,所以../其实就是工程根目录);设置虚拟机***次启动的时候执行的脚本(会设置软件的源,关闭防火墙之类的)

通过上面的配置整个开发环境就自动化了,开发人员拿到代码之后执行切换到dev目录下执行vagrant up,然后选择

PathMapping系统会为我们自动添加上(根据vagrantfile的配置)

Vagrant小结

Vagrant是一个定义虚拟机的配置工具,你可以用一段Ruby脚本设置自己虚拟机的大小、配置、使用的虚拟化软件,之后执行vagrant up就会自动创建出一台虚拟机。

Vagrant会自动生成一个vagrant的用户同时生成一对SSH密钥,私钥会放在.vagrant文件夹下(执行vagrant up后会看到有一个.vagrant文件夹的)。我们执行vagrant ssh xxx的时候会自动使用这个私钥登录。所以PyCharm的配置其实还是通过SSH,原理并没有变。

关于Docker

PyCharm还支持Docker,但是我觉得这个并没有什么用。在MacOS、Windows上Docker其实是先启动一台虚拟机里面装上Linux然后在里面装Docker。

总结

远程调试其实只有两个要点,pydev帮我们解决了远程断点、启动的问题;我们自己要解决代码同步的问题。文章都是用虚拟机来做开发环境的,你也可以用一台公用的机器来做开发环境。这种情况下你就必须用下面的方式开启文件同步了。

***补充一点,我推荐用vagrant的方式它可以帮我们“规范化虚拟机”;如果你开发的程序必须用root启动(vagrant是用vagrant用户启动的)那么只能用ssh了。(我们也可以只让vagrant帮我们生成虚拟机,我们自己进去修改root的密码,然后通过ssh连接进去。)

【本文是专栏作者邢森的原创文章,转载请联系作者本人获取授权】


网站题目:飞翔的灵蛇——PyCharm远程调试
网址分享:http://gydahua.com/article/dhejoid.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

其他资讯

  • steam怎么注册账号?(怎么注册steam)
  • 利用Redis提升数据处理效率(redis缓冲数据)
  • 如何使用html5播放器
  • 向日葵一直无法连接主机怎么办
  • APP安全检测方式都有哪些?

行业动态

企业网站建设的重要性!

现在虽然是移动互联网时代,但企业网站依然重要,包含PC站点,移动站。可以说企业网站关系企业的未来发展和前途,尤其对中小企业更是如此,一些中小企业老板,对自己的名片很在乎,因为这是个门面。...

服务项目

  • 网站建设

    查看详情
  • 移动端/APP

    查看详情
  • 微信/小程序

    查看详情
  • 技术支持

    查看详情
  • 其它服务

    查看详情
  • 更多服务项目

    用我们的专业和诚信赢得您的信赖,从PC到移动互联网均有您想要的服务!

    获取更多

联系吧 在百度地图上找到我们

电话:13518219792

如遇占线或暂未接听请拨:136xxx98888

业务咨询 技术咨询 售后服务
网站设计
做网站设计
企业网站设计
温江网站设计
成都网站设计
网站制作
移动手机网站制作
网站制作公司
成都网站制作
绵阳网站制作
联系我们
电话:13518219792
邮箱:631063699@qq.com
地址:成都青羊区锦天国际1002号
网址:www.gydahua.com
网站建设
网站建设开发
安防网站建设方案
盐亭网站建设
成都企业网站建设

微信二维码

  • 友情链接
  • 成都门窗定制
  • 成都商业雕塑
  • 成都产品认证
  • 四川发电机租赁
  • 乐山服务器托管
  • 微信小程序开发
  • 成都门窗定制
  • 堡垒主机
  • 网站解决方案
  • 注册域名

Copyright © 2002-2023 www.gydahua.com 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号

  • 在线咨询
  • 13518219792
  • 微信二维码

  • 移动版官网