运行vpython测试代码触发ZeroDivisionError错误,求技术帮助
VPython运行intro.py触发ZeroDivisionError的解决办法
问题场景
- 环境:Python 3.9.9,通过
pip install vpython完成安装 - 执行
python -m vpython.test测试后,运行intro.py时出现如下错误:
PS H:\Preston\folders\programming\py\vpython> python -u "h:\Preston\folders\programming\py\vpython\intro.py" exit Error in atexit._run_exitfuncs: Traceback (most recent call last): File "C:\Users\Preston\AppData\Local\Programs\Python\Python39\lib\site-packages\vpython\vpython.py", line 22, in Exit a = 1.0/zero ZeroDivisionError: float division by zero
解决方法
临时修复(直接修改源码)
- 找到VPython安装目录下的
vpython.py文件,路径为C:\Users\Preston\AppData\Local\Programs\Python\Python39\lib\site-packages\vpython\vpython.py - 打开文件,定位到第22行的
Exit函数,将a = 1.0/zero这行代码替换为pass,或者直接注释掉 - 保存文件后重新运行intro.py即可
版本适配方案
- 卸载当前安装的VPython:
pip uninstall -y vpython - 安装适配Python 3.9的稳定版本:
pip install vpython==7.6.4 - 安装完成后重新执行测试命令和运行intro.py
问题原因
这个错误是VPython退出回调函数中的已知bug——代码里引用了未定义的zero变量,导致程序退出时触发除零异常,在Python 3.9版本环境下更容易出现。
内容的提问来源于stack exchange,提问作者mesharayt
相关产品推荐
相关产品推荐

