使用VPython时Python出错

时间:2014-05-19 09:14:53

标签: python numpy vpython

当我尝试导入任何内容或尝试修改numpy语句以从numpy import arange 中导入以外的任何内容时,我会收到错误,例如来自numpy import * ,或者添加任何其他导入语句。

我也无法使我的半径随机浮动它说r = random.uniform(0,2)AttributeError:'builtin_function_or_method'对象没有属性'uniform'。

这是我尝试修改导入语句时遇到的错误:

Traceback (most recent call last):
   line 13, in <module>
    rate(5)
TypeError: rate() missing 3 required positional arguments: 'pmt', 'pv', and 'fv'

代码:

from visual import *
from math import cos,sin,pi

from numpy import arange


from random import *

s = sphere(pos=[1,0,0],radius=0.1,color = color.red)
s0 = sphere(pos=[0,0,0],radius=0.25,color = color.green)

for i in arange(0,100,0.1):
    rate(5)
    theta = randint(0,30)
    r = randint(-2,2)
    x = cos(theta)
    y = sin(theta)
    s.pos = [x,y,r]

1 个答案:

答案 0 :(得分:1)

在脚本或程序中使用from <some_library> import *通常是个坏主意,因为它会将{em>所有从<some_library>导入当前命名空间。如果<some_library>中的任何名称已存在于当前名称空间中,则将重新定义它们。例如,最好是

import numpy as np

并使用前缀np访问numpy命名空间(例如np.arange),或者只显示您脚本中所需的内容。例如,要从randint导入random

from random import randint

在您的情况下,numpyvisual都定义了一个名为rate的函数。 (请参阅http://vpython.org/contents/docs/rate.htmlhttp://docs.scipy.org/doc/numpy/reference/generated/numpy.rate.html。)显然,当您收到报告的错误时,您已完成from numpy import *,因此您的脚本正在调用numpy.rate而不是visual.rate