我在 os x 上编写了一个脚本,导入 getpass 并要求输入密码:
a = getpass.getpass("Password: ")
但是当我在 Linux 中运行相同的代码时:
python2 getpass.py
上面写着
AttributeError: 'function' object has no attribute 'getpass'
我尝试制作这样的脚本:
import getpass
a = getpass.getpass("Password: ")
print a
我得到:
TypeError: 'module' object is not callable
对于 getpass.getpass 有什么问题吗?因为它在 os x 下工作得很好?
最佳答案
因为您已将脚本命名为 getpass.py
,所以当您执行 import getpass
时,您正在导入自己。这意味着 getpass.getpass
解析为模块,而不是您打算在标准库的 getpass
模块中调用的函数。
解决方案很简单:将脚本重命名为 getpass.py
以外的名称。一般来说,避免在您自己的代码中使用与标准库模块相同的名称(除非在包中,如果您使用的是 from __future__ importabsolute_import
或默认的 Python 版本)。
关于python - 我在 Linux 下获取 getpass.getpass() 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799976/