python - 我在 Linux 下获取 getpass.getpass() 时遇到问题

标签 python linux

我在 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/

相关文章:

python - 如何在每次下载后更新 Toga 进度条?

python - python 中的依赖注入(inject)(取决于模块可用性)

linux - 如何使用 mailx 将脚本文件发送给 Linux 主机上的另一个用户

javascript - 将简单的温度 bash 脚本转换为 javascript

linux - 删除文本文件中包含少于 4 个管道的行

python - 如何使用 Python 访问 Windows Vista 上的文件属性?

python - 如何在 Selenium Python 中编写功能/集成测试

python - 使用 Openpyxl 在 excel 中找不到事件或选定的单元格

java - Eclipse - 在 Debug模式下运行失败

linux - 清除和重建 ldconfig 缓存?