我正在尝试运行一个简单的代码维基百科检查模块是否一切正常。我的代码如下:
from vpython import *
scene=canvas()
scene.width=550
scene.height=550
scene.height=580
scene.range=2
ball=sphere(pos=vec(0,0,0),radius=0.8,color=color.orange)
我使用命令运行它:python3 foo.py
。但是此后,程序冻结,当我终止该进程时,我收到以下回溯:
Exception ignored in: <bound method standardAttributes.__del__ of <vpython.vpython.sphere object at 0x7f25192959e8>>
Traceback (most recent call last):
File "/home/kuba_unix/.local/lib/python3.5/site-packages/vpython/vpython.py", line 1105, in __del__
super(standardAttributes, self).__del__()
File "/home/kuba_unix/.local/lib/python3.5/site-packages/vpython/vpython.py", line 315, in __del__
cmd = {"cmd": "delete", "idx": self.idx}
AttributeError: 'sphere' object has no attribute 'idx'
但我不知道这是否是问题所在。我在 Windows 10 上工作并使用适用于 Linux 的 Windows 子系统。对于绘图,我使用 Xming 窗口并在 bash 控制台中使用设置显示export DISPLAY=:0
。直到今天,我都没有遇到任何绘图问题(gnuplot 和 matplotlib 工作得很好)。有关其他信息,我使用的是 Python 3.5.2,vpython 的版本是 ['7.5.0', 'jupyter'](导入模块不会引发任何错误)。这个程序的结果应该是这样的在这个例子中。
答案1
所需步骤:
- 安装软件包:
sudo apt install python3 python3-pip
- 安装 vpython 模块:
pip3 install --user vpython
- 运行python文件:
python3 ./foo.py
- 从命令提示符中的命令获取 TCP/IP 端口号
netstat -abno
。或者使用资源监视器、Sysinternals 的 TCPView 等作为 GUI。以下是 ResMon 的屏幕截图:
- 在 Windows 中打开任意浏览器。输入 URL 为
localhost:port_number
。例如,在图像中localhost:49669
。第一个端口用于查看图像,后面一个用于关闭连接。
图像通过 TCP/IP 链接提供。因此,这里不需要 Xserver。尽管 Windows 防火墙可能不会阻止连接,但可以在防火墙中打开端口(如果被阻止)。