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

