我在os x上编写了一个脚本,导入ge​​tpass并要求输入密码:

a = getpass.getpass("Password: ")


但是当我在linux中使用以下命令运行相同的代码时:

python2 getpass.py


它说


  AttributeError:“函数”对象没有属性“ getpass”


我试图制作一个像这样的脚本:

import getpass
a = getpass.getpass("Password: ")
print a


我得到:


  TypeError:“模块”对象不可调用


关于getpass.getpass有什么问题的任何想法,因为它在os x下可以正常工作?

最佳答案

因为您已将脚本命名为getpass.py,所以当您执行import getpass时,就意味着要导入自己。这意味着getpass.getpass解析为模块,而不是您打算在标准库的getpass模块中调用的函数。

解决方案很简单:将脚本重命名为getpass.py以外的名称。通常,请避免为自己的代码使用与标准库模块相同的名称(如果使用的是from __future__ import absolute_import或默认为Python版本,则可能不在软件包中)。

关于python - 我在Linux下获取getpass.getpass()时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31799976/

10-10 10:42