CertFlow 调试指南¶
本文档帮助开发者调试 CertFlow 应用。
调试模式¶
启用调试模式¶
# 方式1:环境变量
export CERTFLOW_DEBUG=1
python run.py
# 方式2:命令行参数
python run.py --debug
# 方式3:修改配置
# config/config.yaml
debug: true
调试日志级别¶
# 设置日志级别为 DEBUG
export CERTFLOW_LOG_LEVEL=DEBUG
python run.py
常用调试工具¶
1. 日志输出¶
from certflow.utils.logger import LoggerManager
log = LoggerManager().get_logger()
log.debug("调试信息: %s", variable)
log.info("普通信息")
log.warning("警告信息")
log.error("错误信息", exc_info=True)
2. 断点调试 (pdb)¶
# 在代码中插入断点
import pdb; pdb.set_trace()
# 或在命令行运行
python -m pdb run.py
3. Qt 调试¶
# 打印 Qt 对象信息
print(widget.objectName())
print(widget.geometry())
print(widget.styleSheet())
# 打印信号连接
print(widget.receivers(signal))
4. 数据库调试¶
# 打印 SQL 语句
from sqlalchemy import event
@event.listens_for(Engine, "before_execute")
def receive_before_execute(conn, clause, multiparams, params):
print("SQL:", clause)
@event.listens_for(Engine, "after_execute")
def receive_after_execute(conn, clause, multiparams, params, result):
print("Result:", result.fetchall())
常见问题调试¶
Q: 导入Excel失败¶
# 调试 Excel 读取
import pandas as pd
df = pd.read_excel("file.xlsx", header=1)
print(df.columns.tolist())
print(df.head())
print(df.info())
Q: 打印无输出¶
# 调试打印
from certflow.services.printer import LQ635KIIPrinter
printer = LQ635KIIPrinter()
print("打印机名称:", printer.get_printer_name())
print("可用打印机:", printer.get_available_printers())
Q: 数据库查询慢¶
# 查看执行的 SQL
from sqlalchemy import create_engine
engine = create_engine("sqlite:///data/db/certflow.db", echo=True)
VS Code 调试配置¶
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: CertFlow",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/run.py",
"console": "integratedTerminal",
"env": {
"CERTFLOW_DEBUG": "1",
"CERTFLOW_LOG_LEVEL": "DEBUG"
}
},
{
"name": "Python: CLI Command",
"type": "python",
"request": "launch",
"module": "certflow.cli",
"args": ["import_sales_plan", "-f", "test.xlsx"],
"console": "integratedTerminal"
}
]
}
性能分析¶
使用 cProfile¶
python -m cProfile -o output.prof run.py
python -m pstats output.prof
使用 line_profiler¶
pip install line_profiler
kernprof -l -v run.py
使用 memory_profiler¶
pip install memory_profiler
python -m memory_profiler run.py
常见错误码¶
错误码 |
说明 |
调试建议 |
|---|---|---|
1 |
通用错误 |
查看日志 |
2 |
配置错误 |
检查 config/*.yaml |
3 |
数据库错误 |
检查数据库连接 |
4 |
文件错误 |
检查文件权限 |
5 |
打印错误 |
检查打印机连接 |
获取帮助¶
查看日志:
logs/certflow.log提交 Issue:附上日志和错误信息
开发讨论:内部交流群