有经验的Python程序员(特别是以前的php程序员):如何调试Python?

有经验的Python程序员(特别是以前的php程序员):如何调试Python?,python,debugging,Python,Debugging,在PHP中,开始黑客攻击并弄清楚页面上发生了什么是非常容易的。只要加上一堆回声和打印就行了。在python中,这种技术似乎不适用于我。我通过在python照片上传模块中进行黑客攻击来进行练习,当上传一张照片时,它会创建3张不同大小的照片。我找到了执行此操作的代码,但我想查看特定时刻的状态。我尝试对大小变量进行“打印”,但它没有显示在我的浏览器中 我想一个更简单的问题是,是“pythonic”使用浏览器进行调试(相当于php中的echo和print_r),还是这就是python控制台的用途?谢谢

在PHP中,开始黑客攻击并弄清楚页面上发生了什么是非常容易的。只要加上一堆回声和打印就行了。在python中,这种技术似乎不适用于我。我通过在python照片上传模块中进行黑客攻击来进行练习,当上传一张照片时,它会创建3张不同大小的照片。我找到了执行此操作的代码,但我想查看特定时刻的状态。我尝试对大小变量进行“打印”,但它没有显示在我的浏览器中


我想一个更简单的问题是,是“pythonic”使用浏览器进行调试(相当于php中的echo和print_r),还是这就是python控制台的用途?谢谢

使用
日志记录
模块,而不是将内容打印到stdout


在交互模式下使用解释器是尝试代码的好方法,而
pdb
对于真正的调试非常有用。

使用
日志记录
模块,而不是将内容打印到标准输出

在交互模式下使用解释器是一种尝试代码的好方法,
pdb
对于真正的调试非常有用。

使用解释器进行调试是一种“pythonic”

但事实上,如果你只是“胡闹”,那么我建议你使用交互式解释器界面,特别是一个支持自动完成的界面(Python本身自带了现成的IDLE)。

使用它进行调试是“pythonic”的


但事实上,如果你只是“胡闹”,那么我建议你使用交互式解释器界面,尤其是支持自动完成的界面(Python本身自带现成的IDLE)。

你需要学习如何使用调试器;)使用打印进行黑客攻击对于简单的php来说很酷,但是使用调试器可以在高级语言中节省大量时间


如前所述,PDP是一个起点

您需要学习如何使用调试器;)使用打印进行黑客攻击对于简单的php来说很酷,但是使用调试器可以在高级语言中节省大量时间


如前所述,PDP是一个开始

正如其他人所提到的PDB一样,我将借此机会使用pydev插件赞扬Eclipse,这绝对是非常棒的。空闲也是值得一试的。这两个IDE都允许您单步执行代码、检查变量、自动完成等

下载Eclipse,然后使用软件更新菜单添加到PyDev中


正如其他人提到的PDB一样,我将借此机会使用pydev插件赞扬Eclipse,这绝对是太棒了。空闲也是值得一试的。这两个IDE都允许您单步执行代码、检查变量、自动完成等

下载Eclipse,然后使用软件更新菜单添加到PyDev中


来自的产品与他们所有的其他产品一样好。它有一个集成的调试器和更多功能。

与其他所有产品一样好。它有一个集成的调试器和更多功能。

感谢您提出这个问题。但是,我将如何模拟通过控制台上传图片??这是让我困惑的部分。使用php,我只需找到正在执行的视图,然后打印。然后加载页面,上传图像,然后查看变量。你能告诉我如何1.模拟照片上传,然后2。检查变量。同样,步骤1对我来说是令人困惑的部分。谢谢@克里斯:对于这样的事情,
logging.debug();根据您的web框架,
print
可能不会向浏览器的响应发送任何内容(如果发送了,则可能不会以有用的方式发送;通常您会意外写入HTTP头)。感谢您提出此问题。但是,我将如何模拟通过控制台上传图片??这是让我困惑的部分。使用php,我只需找到正在执行的视图,然后打印。然后加载页面,上传图像,然后查看变量。你能告诉我如何1.模拟照片上传,然后2。检查变量。同样,步骤1对我来说是令人困惑的部分。谢谢@克里斯:对于这样的事情,
logging.debug();根据您的web框架,
print
可能不会向浏览器的响应发送任何内容(如果发送了,则可能不会以有用的方式发送;通常您会意外地写入HTTP头)。我知道如何使用调试器:P。对于如何使用python命令提示符测试网页,我完全感到困惑。请看我对wooble回答的第一个反应,即什么是令人困惑的。谢谢你的意见!我知道如何使用调试器:P。对于如何使用python命令提示符测试网页,我完全感到困惑。请看我对wooble回答的第一个反应,即什么是令人困惑的。谢谢你的意见!