今天是怎么了。。总遇到神秘的 bug。。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
foveal
V2EX    Python

今天是怎么了。。总遇到神秘的 bug。。。

  •  
  •   foveal 2024-07-04 19:50:12 +08:00 3004 次点击
    这是一个创建于 463 天前的主题,其中的信息可能已经有所发展或是发生改变。
    上午是代码中的 try catch catch 不到报错,进程会中断。
    写的是
    ```python
    try:
    xxx
    except Exception as e:
    print(e)
    ```
    可能是某些写法叠加 gunicorn 导致的?


    下午是请求 one-api 的接口,同样的 openai 格式参数,在服务里请求就报错,单独请求就正常。。。

    今天是怎么了?
    第 1 条附言    2024-07-06 17:23:58 +08:00
    one-api 接口的问题是我犯傻了。。请求地址不一样都没看出来。

    但是 try
    Traceback (most recent call last):
    File "/usr/local/lib/python3.10/site-packages/gunicorn/workers/sync.py", line 134, in handle
    self.handle_request(listener, req, client, addr)
    File "/usr/local/lib/python3.10/site-packages/gunicorn/workers/sync.py", line 180, in handle_request
    for item in respiter:
    File "/usr/local/lib/python3.10/site-packages/werkzeug/wsgi.py", line 506, in __next__
    return self._next()
    File "/usr/local/lib/python3.10/site-packages/werkzeug/wrappers/base_response.py", line 45, in _iter_encoded
    for item in iterable:
    File "/app/scenes/medical_base_openai.py", line 37, in chat_completion
    data = context_func(req_data)
    File "/app/scenes/wpa_report.py", line 60, in report_context
    messages[0]['content'] = prompt(messages[0]['content'])
    IndexError: list index out of range
    @zictos 能看到日志,只是分析不出原因。。改成 BaseException 也捕获不了。
    程序简化一下大概是长这样:
    import copy
    import os
    from requests import Session
    from loguru import logger
    import openai
    class B(object):
    def child_function(self,num):
    raise Exception('here')
    class A(B):
    def parent_function(self,num,child_function):
    return self.child_function(num)
    def main(self,num):
    try:
    ret = self.parent_function(num,child_function)
    except Exception as e:
    logger.error(e)
    ret = 0
    return ret
    A().main(1)

    在 child_function 里面报错,正常是可以捕获的,似乎放到在线服务上就捕捉不到了。。
    10 条回复    2024-07-18 10:01:54 +08:00
    9c04C5dO01Sw5DNL
        1
    9c04C5dO01Sw5DNL  
       2024-07-04 22:05:39 +08:00
    公司是不是进了什么脏东西
    zictos
        2
    zictos  
       2024-07-04 23:05:52 +08:00 via Android   2
    用 BaseException ,Exception 有些异常无法捕获。
    也可以在命令行执行时将标准错误输出到标准输出中,并将输出重定向到文件,这样如果报错并退出的话最后的错误会写入到文件。同时要使用 python -u ,因为缓存机制可能导致无法重定向到文件
    TimG
        3
    TimG  
       2024-07-04 23:09:34 +08:00 via Android
    http 请求的话,不光请求体,也检查下 header ?
    ho121
        4
    ho121  
       2024-07-05 07:55:16 +08:00 via Android
    ho121
        5
    ho121  
       2024-07-05 07:57:12 +08:00 via Android   1
    @zictos 有些异常一般情况下是不应该捕获的,比如 KeyboardInterrupt 、SystemExit 。
    zictos
        6
    zictos  
       2024-07-05 09:04:37 +08:00 via Android
    @ho121 我有时候用 while 循环,每循环一次延时一秒,把延时一秒放在 try 的外面,也可以按 ctrl+c 终止程序。因为 try 里面的代码执行时间很短,延时一秒就相对时间比较长了,大部分时候按 ctrl+c 都不会是在执行 try 里面的代码
    yangzzz
        7
    yangzzz  
       2024-07-05 09:06:19 +08:00
    拜拜祖师爷
    009694
        8
    009694  
       2024-07-05 13:47:04 +08:00 via iPhone   1
    日志也不贴 代码也不贴 那我们只能建议烧烧香 拜拜佛 祈祷能正常了
    quanqqqq
        9
    quanqqqq  
       2024-07-05 18:02:36 +08:00
    @giiiiiithub 找个道士驱驱邪
    45HXlKzal6W56zUJ
        10
    45HXlKzal6W56zUJ  
       2024-07-18 10:01:54 +08:00
    用 one-api, 贵司干啥的[doge]
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:52 PVG 15:52 LAX 00:52 JFK 03:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86