繁体   English   中英

在python中导入和使用模块

[英]Importing and using modules in python

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

#!/usr/bin/python -tt

import random

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

if __name__ == '__main__':
  main()

您可能在当前目录中有一个名为random.py(或pyc)的文件。 你可以通过这样做找出你正在使用的随机模块的来源:

import random
print(random.__file__)

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

  1. import foo这样的行被执行。
  2. Python查看sys.path中的目录,该目录是按顺序排列的列表。 sys.path的第一个条目是主文件所在的目录。
  3. 当Python找到名为“foo.py”的文件时,它会执行它并将该文件的全局命名空间放在sys.modules['foo']模块sys.modules['foo']
  4. Python将该模块绑定到原始导入范围内的名称foo

因此,当您将文件命名为random.py ,python会在搜索标准库中的文件之前找到该文件。 您正在使用您的文件“遮蔽” random模块。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM