我有一些看起来像这样的代码:
import random
n = 0
while n <= 50:
n = n+1
a = random.randint(1, 16)
b = random.randint(1, 5)
print n, ". ", a, "-", b, "= "
出于某种原因,在运行它时,我收到以下错误:AttributeError: 'module' object has no attribute 'randint'
。但是,在IDLE中运行相同的random.randint查询时没有问题。我该如何解决这个问题?
答案 0 :(得分:35)
你有另一个名为“随机”的模块。您是否将脚本命名为“random.py”?
答案 1 :(得分:6)
检查您的文件名称!在你的情况下“随机”是关键词,你不能使用&#34;随机&#34;作为文件名。请注意,没有文件名为random.py
。
答案 2 :(得分:3)
如果您正在处理的文件名或项目中的其他文件名为“random.py”,则您的程序会尝试在该位置找到randint函数,但无法找到它。
您应该将任何文件名random.py更改为其他内容。在此之后,“import random”将解析为“actual”random.py模块,您将成功使用 randint 或模块中的任何其他功能。
答案 3 :(得分:2)
代码对我来说很好,所以你必须在你的PYTHONPATH上有另一个名为“random”的模块
尝试一个目录(随机)来查看其中的内容。这可能会让您更容易记住为什么您有另一个名为random的模块以及它在哪里。
答案 4 :(得分:2)
将文件名从cv2.cvtColor
更改为random.py
之类的其他可以解决问题的文件。
答案 5 :(得分:0)
您可以使用numpy array轻松解决问题,只需执行以下操作
import numpy as np
import random
n = 0
while n <= 50:
n = n+1
a = np.random.randint(1, 16)
b = np.random.randint(1, 5)
print n, ". ", a, "-", b, "= "
答案 6 :(得分:0)
项目中python文件或其他文件的名称可能是random.py,因此更改后,不会有任何错误