您的位置:

远程调试python的简单介绍

本文目录一览:

如何远程调试Python代码

用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,

pycharm使用远程环境无法读取环境中的包

一.介绍

Python远程调试,即在远程机器上运行python代码,在本地进行调试。

需要环境:python

调试环境:PyCharm

需要依赖:远程和本地需要在python路径安装pycharm-debug.egg

注:安装egg包需要使用先安装setuptools

二.安装setuptools

在windows/linux环境下直接使用ez_setup.py脚本安装:

1. 下载脚本:该脚本会自动下载setuptools-1.1.6.tar.gz

2. 运行脚本:python ez_setup.py 即可完成setuptools安装

(注:如果机器连不上服务器,可以把ez_setup.py和setuptools-1.1.6.tar.gz包拷贝到该机器上,并放在同一目录下,然后运行ez_setup.py即可)

三.安装pycharm-debug.egg

在PyCharm的安装目录下能找到pycharm-debug.egg,在python的安装路径下能找到easy_intall命令(已安装了setuptools),执行:

easy_install.exe pycharm-debug.egg即可完成安装。

四.远程调试

1. 打开PvCharm,配置远程调试:

(a). 打开edit confiurations

(b). 添加Python Remote Debug

(c). 配置本地的ip、端口号,如:192.168.112.6,此ip为你进行调试操作的机器的ip,远程机器需要连上这个ip。

(d)在远程机器上编写将在本地调试的python代码,在入口处加上:

import pydevd

pydevd.settrace('192.168.112.6',port=51234, stdoutToServer=True, stderrToServer=True)

配置的ip、端口好即在本地PvCharm上配置的ip和端口号,即PvCharm所在机器的ip和开启调试的端口号。

2. 开始调试

a) 在本地PvCharm上开始调试服务,

b) 在远程机器上运行python脚本:

c) 此时可点击”Download”下载源码:

d) 开始调试:

如何通过pycharm实现远程代码的调试和开发

默认的开发语言是python,那么python开发的一个重要事项是包管理。想想那么多负责的包,如果没有好的包管理系统,在本机搭建一个包环境是多么复杂。于是放弃了本地构建包的想法——使用远程包。

pycharm作为一款强大的IDE,很好的实现了这个功能。

点击file-settings,找到如图示所示的页面(project Interpreter),点击下拉框后边的设置图标,能找到红框标识的选项,点击“Add Remote”。

2.这里选择ssh这种方式连接,这块没什么好说的,按照要填写的信息填写好点确定就ok了。

3.上述这部完成后还需要注意一个细节,看下图,这里需要把这个也给设置了,这个就是需要把你本地的工程和远程的工程对接起来。

4.分别按照步骤将local path和remote path选择好。其中local path对应本地的工程位置,remote path对应要连接的工程的位置。

5.设置完后得到的结果如下,然后点击ok退出设置。

至此,等待IDE加载完这些包,包环境已经搞定了,这时候点击运行已经能执行了,执行结果说明配置成功了。这个时候,不管是运行还是调试,运行调用的环境和代码都是远程的了,打断点调试也可以执行了。(注意: 这里的本机代码必须和服务器代码相同,否则断点可能不是期望的那个断点位置。)

更进一步

上面已经能满足远程调试的需求了,但是调试意味着要修改一部分代码。前面调试注意点说到要统一两边的代码,那么问题来了,我们该一两行代码,难道要用ssh来回改文件么?其实不用!接着往下看。

1.创建开发模式的sftp连接。设置位置如下图:

点击加号,弹出下框,名字自己填,type下拉选择sftp,弹出框后,按照需求把相关的字段填好。

3.完成图示9的操作时候,不要着急关闭,选择红框所示的右边的“Mappings”这个标签页,把红框标识的两个路径选择好,还是第一个是本地工程的路径,第二个路径是远程服务器上面的工程路径。

搞定上述的那些操作,就可以随意的修改代码和远程代码进行随意同步了。

这里改了一部分代码,只需要点击右键,然后选择下图的选项,两边的代码就同步了。

ok,从现在开始,像本机一样开发吧。