Python 项目大了后如何调试单个文件
接手别人的项目 launch.py 没问题 运行单个文件就 No module named... 真是被头文件搞得头大..
Python 项目大了后如何调试单个文件
不要单个跑 打 log 就好
Python项目大了之后调试单个文件,我一般用这几种方法:
- 直接运行文件:在文件末尾加个
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 就能单独测试。
- 用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 只测这个文件。
-
IDE的调试功能:VSCode或PyCharm里,右键文件选"Debug"或设置断点直接调试。
-
命令行调试:用
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 解决.

