You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python工具logChecker:脚本运行正常,pip安装后CLI执行重复两次求助

排查pip安装后Python CLI工具重复执行问题

我开发了一款用于日志对比的Python工具logChecker,直接以Python脚本形式运行时一切正常:

$ python3 src/logChecker/logChecker.py -pre logs_pre/ -post logs_pos/ -tf templ/
##### Successfully Loaded Templates from folder templ/ #####
##### Successfully Loaded Templates from folder templ/ #####
##### Logs Loaded Successfully from folder logs_pre/ #####
##### Logs Loaded Successfully from folder logs_pos/ #####
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json

Saving Excel
# 0 sh_rtr_opsf_op_db.template
# 1 sh_rtr_bgp_neigh.template
# 2 sh_rtr_rt_tbl_summ.template
# 3 sh_rtr_ospf_neigh.template

但通过pip3 install logChecker安装后,CLI调用工具会执行两次:

$ pip3 show logChecker
Name: logChecker
Version: 3.5.6
Summary: A simple log analysis tool
Home-page: https://github.com/laimaretto/logChecker
Author: Lucas Aimaretto
Author-email: laimaretto@gmail.com
License: BSD 3-clause
Location: /home/lucas/.local/lib/python3.8/site-packages
Requires: pandas, textfsm, ttp, XlsxWriter
Required-by:
$ logChecker -pre logs_pre/ -post logs_pos/ -tf templ/
##### Successfully Loaded Templates from folder templ/ #####
##### Successfully Loaded Templates from folder templ/ #####
##### Logs Loaded Successfully from folder logs_pre/ #####
##### Logs Loaded Successfully from folder logs_pos/ #####
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json

Saving Excel
# 0 sh_rtr_opsf_op_db.template
# 1 sh_rtr_bgp_neigh.template
# 2 sh_rtr_rt_tbl_summ.template
# 3 sh_rtr_ospf_neigh.template
##### Successfully Loaded Templates from folder templ/ #####
##### Successfully Loaded Templates from folder templ/ #####
##### Logs Loaded Successfully from folder logs_pre/ #####
##### Logs Loaded Successfully from folder logs_pos/ #####
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json
0 0 sh_rtr_opsf_op_db.template agg01.cpe_rx.json
1 0 sh_rtr_bgp_neigh.template agg01.cpe_rx.json
2 0 sh_rtr_rt_tbl_summ.template agg01.cpe_rx.json
3 0 sh_rtr_ospf_neigh.template agg01.cpe_rx.json

Saving Excel
# 0 sh_rtr_opsf_op_db.template
# 1 sh_rtr_bgp_neigh.template
# 2 sh_rtr_rt_tbl_summ.template
# 3 sh_rtr_ospf_neigh.template

问题仅出现在pip安装后的CLI调用场景,直接跑脚本或内部调用均正常。已检查setup.py未发现明显问题,以下是排查方向和解决思路:

  • 检查setup.py的entry_points配置:确认console_scripts是否重复定义,或同时使用了console_scripts和scripts字段(两者都会生成CLI入口,可能导致重复触发)。
  • 排查主脚本的执行逻辑:检查logChecker.py中是否有if __name__ == "__main__":块之外的直接执行代码。通过entry_points调用时模块会被导入,若模块顶层有执行代码,会和main函数的调用重复执行;同时确认main函数是否被多次调用。
  • 查看CLI入口脚本内容:用which logChecker找到命令路径,查看生成的脚本,确认是否存在两次调用main函数的逻辑。
  • 验证安装环境:检查是否存在多版本重复安装,或系统中多个bin目录下存在同名脚本,导致调用时触发两次。
  • 隔离依赖干扰:在干净的虚拟环境中安装测试,排除textfsm、ttp等依赖的初始化逻辑可能带来的间接触发问题。

内容的提问来源于stack exchange,提问作者Lucas Aimaretto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:16:08