Python 项目大了后如何调试单个文件

接手别人的项目 launch.py 没问题 运行单个文件就 No module named... 真是被头文件搞得头大..


Python 项目大了后如何调试单个文件
5 回复

不要单个跑 打 log 就好


Python项目大了之后调试单个文件,我一般用这几种方法:

  1. 直接运行文件:在文件末尾加个 if __name__ == '__main__': 块,里面放测试代码。比如有个 utils.py
def process_data(data):
    # 复杂逻辑...
    return result

if __name__ == '__main__':
    # 测试这个文件
    test_data = {...}
    result = process_data(test_data)
    print(f"结果: {result}")

然后直接 python utils.py 就能单独测试。

  1. 用pytest写测试文件:给要调试的文件创建对应的测试文件,比如 test_utils.py
import pytest
from utils import process_data

def test_process_data():
    test_data = {...}
    result = process_data(test_data)
    assert result == expected_value

运行 pytest test_utils.py -v 只测这个文件。

  1. IDE的调试功能:VSCode或PyCharm里,右键文件选"Debug"或设置断点直接调试。

  2. 命令行调试:用 python -m pdb your_file.py 进入pdb调试器,或者代码里加 import pdb; pdb.set_trace() 设置断点。

我平时最常用的是第一种加第二种,写个简单的 if __name__ == '__main__' 块快速验证,复杂的逻辑再用pytest写正式测试。

总结:加main块快速测试,复杂逻辑用pytest。

所以你需要测试脚手架……

在项目顶层写一个 这个文件的引用 再调用。
可以使用到项目的环境依赖

这个要看项目的目录结构, 一般可以通过在 <a target="_blank" href="http://launch.py" rel="nofollow noopener">launch.py</a> 所在目录将 python path/to/<a target="_blank" href="http://script.py" rel="nofollow noopener">script.py</a> 替换成 python -m path.to.script 解决.

回到顶部