在python中导入和使用模块

时间:2011-01-05 07:21:30

标签: python import

python的新手并试图做一个随机数生成器。但是,我无法导入随机模块。当我尝试使用随机模块中的任何内容时,我得到一个AttributeError。谢谢你的帮助。

#!/usr/bin/python -tt

import random

def main():
  x = random.randint(1,1000)
  print x

if __name__ == '__main__':
  main()

4 个答案:

答案 0 :(得分:9)

您当前目录中可能有一个名为random.py(或pyc)的文件。您可以通过执行以下操作找出您正在使用的随机模块的位置:

import random
print(random.__file__)

答案 1 :(得分:3)

python导入系统模糊地如下工作。

  1. 执行import foo之类的行。
  2. Python查看sys.path中的目录,这些目录是按顺序排列的列表。 sys.path中的第一个条目是主文件所在的目录。
  3. 当Python找到名为“foo.py”的文件时,它会执行它并将该文件的全局命名空间放在模块sys.modules['foo']中。
  4. Python将该模块绑定到原始导入范围内的名称foo
  5. 因此,当您命名文件random.py时,python会在搜索标准库中的文件之前找到该文件。您正在使用您的文件“隐藏”random模块。

    这是简化的,并没有给出完整的图片。例如,它忽略了.pyc文件。

答案 2 :(得分:2)

好的,不要将你的python程序命名为random.py将其命名为其他名称。解释器因其模块和程序而感到困惑。

答案 3 :(得分:0)

我在阅读这篇文章后解决了同样的问题。我的文件名为random.py 用大写字母开始文件名是不是更好,所以它与python模块不匹配,因为像我这样的菜鸟不会熟悉许多python模块。 感谢