Ubuntu上的Python3在help()命令中出现错误

Ubuntu上的Python3在help()命令中出现错误,python,ubuntu,python-3.x,ubuntu-14.04,python-3.4,Python,Ubuntu,Python 3.x,Ubuntu 14.04,Python 3.4,我在Ubuntu 14.04的python3 shell中使用了help() 我得到了这个输出 请帮忙,我不知道怎么了 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> help() Traceback (most recent call las

我在Ubuntu 14.04的python3 shell中使用了help() 我得到了这个输出 请帮忙,我不知道怎么了

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.4/_sitebuiltins.py", line 98, in __call__
import pydoc
File "/usr/lib/python3.4/pydoc.py", line 65, in <module>
import platform
File "/home/omega/platform.py", line 2, in <module>
print("System    : ",platform.uname().system)
AttributeError: 'module' object has no attribute 'uname'
>>> 
Python 3.4.0(默认,2014年4月11日,13:05:11)
[GCC 4.8.2]在linux上
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>帮助()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.4/\u sitebuiltins.py”,第98行,在调用中__
导入pydoc
文件“/usr/lib/python3.4/pydoc.py”,第65行,在
导入平台
文件“/home/omega/platform.py”,第2行,在
打印(“系统:”,platform.uname().System)
AttributeError:“模块”对象没有属性“uname”
>>> 
文件“/home/omega/platform.py”,第2行,在
打印(“系统:”,platform.uname().System)
这就是问题所在,请转到platform.py并修复它,一切正常。上面说,平台上没有任何名为uname的方法,您可能键入错误。

问题在于,这是stdlib模块的名称,它使用的是
帮助。通过在
sys.path
中创建一个与stdlib之前出现的名称相同的模块,可以防止Python使用标准模块

您自己的
平台
模块试图使用同名的stdlib模块,这一事实加剧了问题。那是行不通的;您在该模块中的
导入平台
正在导入自身

解决方法是不要像这样冲突名称。请查看,如果您想直接或间接使用该模块中的功能,请不要创建任何与它们同名的内容


换句话说:将您的
platform.py
重命名为其他名称,或将其放入包中。

不,他没有试图调用
platform.uname
,他只是调用
help()
。问题是Python试图调用
platform.uname
。它不只是想要任何旧的函数,它想要一个作为stdlib的一部分记录的函数。我想这可能是一个bug?不,这不是bug,他只是隐藏了一个stdlib模块。(很明显,他的代码中也有一个bug,他有一个名为
platform
的模块,可以导入并尝试使用stdlib模块
platform
。但是即使没有这个bug,仅仅隐藏stdlib模块也会破坏一切。)@MeghdeepRay:答案已经说明了如何修复它:“将您的
platform.py
重命名为其他名称,或将其放入一个包中。”而且,更一般地说,不要给您自己的任何顶级模块或脚本与任何stdlib模块同名。
File "/home/omega/platform.py", line 2, in <module>
print("System    : ",platform.uname().system)