Python中PyCharm调试功能的常见疑问与解决方法

爬虫新手,经常遇到用 pycharm 调试,然后到某个步骤,debug 就一下子没掉的情况,陷入一点头绪都没有的境地。。。想请教下大家,这样一般怎么处理。。
Python中PyCharm调试功能的常见疑问与解决方法

5 回复

试试 Evaluate Expression ?

没开 Pycharm 拿 IDEA 截个图吧


PyCharm的调试器确实好用,但有几个地方新手容易卡住。最常见的问题是断点打上了但没触发,这通常是因为没以调试模式运行(要点那个绿色的小虫子图标,而不是直接运行)。还有就是条件断点,在断点上右键设置条件,比如x > 5,只有满足条件才会停。

另一个坑是控制台交互。在调试暂停时,可以直接在“Debugger”标签页的“Variables”视图里修改变量的值,或者在下方的“Python Console”里执行任意代码来测试,这个功能查问题特别方便。

远程调试和Docker调试的配置稍微复杂点,核心是在“Run/Debug Configurations”里配好Python解释器路径、映射路径和端口。附上一个基础调试的代码示例:

def calculate_discount(price, discount_rate):
    # 在这里打个断点
    final_price = price * (1 - discount_rate)
    if final_price < 0:
        final_price = 0
    return final_price

def main():
    prices = [100, 50, 200]
    rates = [0.1, 0.2, 0.3]
    
    for i, (price, rate) in enumerate(zip(prices, rates)):
        # 可以在这里设置条件断点: i == 2
        result = calculate_discount(price, rate)
        print(f"商品{i}: 原价{price}, 折后{result:.2f}")

if __name__ == "__main__":
    main()

调试时多用“Step Into”(F7)进函数内部,“Step Over”(F8)执行当前行,“Evaluate Expression”(Alt+F8)快速计算表达式。遇到复杂数据结构,在Variables视图里展开看细节比print快得多。

总结就是,用好条件断点和调试控制台交互能大幅提升效率。

没看懂呀?

就是 debug 不是沿着断点一句一句的往下运行么。然后经常运行到某句的时候,整个 debug 的界面就断开,没法进行下去了

今天遇到的情况搞明白了。。原来 scrapy 运行的时候要在 terminal,如果在 pycharm 中运行要特别指定 script

回到顶部