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

Python3.10中导入vpython出现ZeroDivisionError(浮点除以零)错误求助

问题描述

我使用Python 3.10.0版本,已通过pip成功安装vpython。但执行以下代码:

from vpython import *

print('hello')

时,虽然成功打印出hello,但随后出现如下错误:

exit
Exception ignored in atexit callback: <function Exit at 0x1095d4ee0>
Traceback (most recent call last):
  File "/Users/.../.pyenv/versions/3.10.0/lib/python3.10/site-packages/vpython/vpython.py", line 22, in Exit
    a = 1.0/zero
ZeroDivisionError: float division by zero

请问该错误是什么含义?我该如何解决?

错误含义与解决方法

错误含义

这是vpython库的退出回调函数存在bug导致的异常:程序正常执行完业务逻辑后,vpython注册的Exit退出回调函数会在程序结束时自动执行,而该函数里有一行代码1.0/zero,其中zero变量的值为0,触发了除零错误(ZeroDivisionError)。这个错误不影响你的代码执行,只会在程序退出时抛出。

解决方法

  • 升级vpython到最新版本
    该bug在vpython的后续版本中已被修复,执行命令更新库:
    pip install --upgrade vpython
    
  • 手动移除有问题的退出回调
    如果暂时无法升级,可以在代码末尾添加逻辑,移除vpython注册的错误退出回调:
    from vpython import *
    import atexit
    
    print('hello')
    
    # 遍历退出回调列表,移除vpython的Exit函数
    for handler in atexit._exithandlers:
        if handler[0].__name__ == 'Exit':
            atexit._exithandlers.remove(handler)
            break
    
  • 切换到vpython web版
    若无需本地GUI运行,可使用vpython的web版本,通过浏览器运行代码,避免本地环境的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:48:08