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

VPython 7.6.1报错NameError: name '__server' is not defined的解决求助

解决VPython 7.6.1中NameError: name '__server' is not defined的问题

我完全理解你的困扰——运行最基础的VPython代码却遇到这个奇怪的服务器未定义错误,而且常规方案都不管用。结合你的环境(Spyder + Anaconda Python3.7.6 + VPython7.6.1)和报错细节,这里有几个针对性的排查方向:

一、强制指定Tkinter后端并验证生效

虽然你提到已经切换到Tkinter,但可能设置没有正确生效,导致代码仍然尝试启动Web服务器(这就是__server变量的来源)。试试在代码开头明确指定后端:

from vpython import *
# 强制使用Tkinter渲染后端
scene = canvas(backend='tk')
box()

运行后如果弹出Tkinter窗口显示立方体,说明后端切换成功;如果还是报错,先验证Tkinter是否正常:

import tkinter
root = tkinter.Tk()
root.title("Test Tkinter")
root.mainloop()

如果这个测试代码能弹出窗口,说明Tkinter没问题;如果不行,需要重新安装Anaconda时勾选Tkinter组件,或者单独安装tk包。

二、避开Spyder的IPython环境运行代码

Spyder的集成IPython环境有时候会和VPython的后端逻辑冲突。试试在Anaconda Prompt里激活你的环境,然后直接运行代码:

  1. 打开Anaconda Prompt,输入conda activate 你的环境名(默认是base)
  2. 切换到代码所在目录:cd C:/Users/lponcin/Google Drive/simplex
  3. 运行代码:python code_orbito.py
    如果在命令行环境下能正常运行,说明问题出在Spyder的配置上,可以尝试重置Spyder的设置:打开Spyder,点击Tools > Reset Spyder Settings,然后重启Spyder再试。

三、降级VPython到稳定版本

VPython 7.6.1可能存在和Python3.7/Spyder兼容的bug,试试降级到7.5.0版本(这个版本在Python3.7环境下比较稳定):
在Anaconda Prompt里运行:

pip uninstall vpython -y
pip install vpython==7.5.0

安装完成后再运行你的测试代码,看看是否解决问题。

四、检查依赖包是否完整

报错里的__server是Flask服务器实例,说明代码走到了Web后端的分支,但Flask可能未安装或者版本不兼容。检查并安装兼容版本的Flask:

pip install flask==2.0.3

(2.0.x版本和Python3.7兼容性较好)


附上你提供的报错信息方便参考:

Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 7.12.0 -- An enhanced Interactive Python.
runfile('C:/Users/lponcin/Google Drive/simplex/code_orbito.py', wdir='C:/Users/lponcin/Google Drive/simplex')
Traceback (most recent call last):
File "C:\Users\lponcin\Google Drive\simplex\code_orbito.py", line 9, in
box()
File "C:\Users\lponcin\Anaconda3\lib\site-packages\vpython\vpython.py", line 1099, in init
super(box, self).setup(args)
File "C:\Users\lponcin\Anaconda3\lib\site-packages\vpython\vpython.py", line 579, in setup
super(standardAttributes, self).init()
File "C:\Users\lponcin\Anaconda3\lib\site-packages\vpython\vpython.py", line 236, in init
from .no_notebook import _
File "C:\Users\lponcin\Anaconda3\lib\site-packages\vpython\no_notebook.py", line 272, in
__w = threading.Thread(target=__server.serve_forever)
NameError: name '__server' is not defined

内容的提问来源于stack exchange,提问作者Loïc Poncin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:47:40