我在os x上编写了一个脚本,导入了getpass并要求输入密码:
a = getpass.getpass("Password: ")
但是当我用linux运行相同的代码时:
python2 getpass.py
它说
AttributeError:'function'对象没有属性'getpass'
我尝试制作这样的剧本:
import getpass
a = getpass.getpass("Password: ")
print a
我明白了:
TypeError:'module'对象不可调用
任何关于getpass.getpass有什么问题的想法,因为它在os x下工作正常吗?
答案 0 :(得分:4)
因为你已经命名了你的脚本getpass.py
,当你import getpass
进行自我导入时。这意味着getpass.getpass
解析为模块,而不是您打算在标准库中的getpass
模块中调用的函数。
解决方案很简单:将脚本重命名为getpass.py
以外的其他内容。一般情况下,避免使用与标准库模块相同的名称作为您自己的代码(除非在包中,如果您使用的是from __future__ import absolute_import
或Python版本,那么这是默认的。)