Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中导入和使用模块_Python_Import - Fatal编程技术网

在python中导入和使用模块

在python中导入和使用模块,python,import,Python,Import,python新手,正在尝试使用随机数生成器。但是,我在导入随机模块时遇到问题。当我尝试使用随机模块中的任何内容时,我会得到一个AttributeError。谢谢你的帮助 #!/usr/bin/python -tt import random def main(): x = random.randint(1,1000) print x if __name__ == '__main__': main() 在当前目录中可能有一个名为random.py(或pyc)的文件。通过执行以下

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程序命名为
random.py
将其命名为其他名称。解释器被它的模块和你的程序弄糊涂了。

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

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


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

    我在阅读本文时解决了同样的问题。我的文件名为random.py 以大写字母开始文件名不是更好吗,这样它与python模块不匹配,因为像我这样的新手对很多python模块都不熟悉。
    谢谢

    准确的错误是什么?这段代码很好。删除了[random number generator],因为这不是关于随机数生成器的问题。这只是关于导入模块的问题。下面是错误:回溯(最后一次调用):文件“/random.py”,第10行,在main()文件中“/random.py”,第6行,在main x=random.randint(11000)AttributeError:“module”对象没有属性“randint”。您也可以交互运行Python解释器并随机导入,看看会发生什么。在这种情况下,请阅读
    trypy的
    answer.FWIW,显然在windows机器上,这在某些情况下不会给出完整路径。回溯(最近一次调用):File“/anothername.py”,第10行,在main()文件中“/anothername.py”,第6行,在main x=random.randint(11000)中AttributeError:“module”对象没有属性“randint”@Empty Monty:首先将建议的代码放入模块中。查看它打印的内容。很可能是您忘记删除random.pyc文件。您是否移动/删除了名为random.py(普通代码)和random.pyc(字节码编译)的文件?如果是这样,我的答案是错误的……这就解决了问题。我打印了文件的位置,并说它来自同一个目录,可能是在运行random.py之后创建的。我将pyc文件销毁,重命名为其他文件,打印了文件的位置,它来自python库。愚蠢的python新手错误。非常感谢您r帮助!非常感谢。谢谢你的详细回答。现在一切都讲得通了。