如何在PyCharm中使用Python getpass.getpass

如何在PyCharm中使用Python getpass.getpass,python,pycharm,Python,Pycharm,我发现getpass在PyCharm中不起作用。它只是挂着 事实上,msvcrt.getch和raw_输入似乎也不起作用,所以可能问题不在于getpass。而不是用PyCharm的stdio处理的“i”位 问题是,我无法将我的个人密码输入到代码中,因为它最终会出现在SVN中,其他人可以看到它。所以我每次都使用getpass来获取密码 在搜索中,我所能找到的只是“Pycharm进行dome黑客攻击以使Django使用getpass”,但没有暗示该黑客是什么 我看过getpass,它在Windows

我发现getpass在PyCharm中不起作用。它只是挂着

事实上,msvcrt.getch和raw_输入似乎也不起作用,所以可能问题不在于getpass。而不是用PyCharm的stdio处理的“i”位

问题是,我无法将我的个人密码输入到代码中,因为它最终会出现在SVN中,其他人可以看到它。所以我每次都使用getpass来获取密码

在搜索中,我所能找到的只是“Pycharm进行dome黑客攻击以使Django使用getpass”,但没有暗示该黑客是什么

我看过getpass,它在Windows上使用msvcrt(所以这个问题可能只在Windows上)


我的问题是:是否有解决此问题的方法?

解决此问题的常见方法是将凭据存储在一个文件中,并将其标记为被VCS忽略。那么就:

with open('credentials.txt') as f:
    user, pw = f.read().split('\n')  # or similar

或者,在环境变量中指定它们。这两种方法都应该围绕PyCharm对stdin的处理而工作。我在Windows上运行PyCharm CE 4.5时遇到了这个问题。我使用的解决方法是在调试模式下运行程序,然后您会得到一个控制台选项卡,在使用getpass时可以在其中输入密码。

不幸的是,getpass()往往会失败得很惨(我在Python 3.4上使用IDLE和PyScripter对其进行了测试,但没有成功)。我建议您使用easygui中的passwordbox,只要您不使用任何版本,它就可以非常有效地工作。0.98(那里有点混乱),使用ver是安全的。0.96

下载easygui版本。0.96,将其解压缩到一个临时文件夹中,然后从该文件夹中安装:

python setup.py install
并在程序中使用passwordbox:

from easygui import passwordbox
password = passwordbox("PASSWORD:")
对于PyCharm 2018.3 转到“编辑配置”,然后选择“在输出控制台中模拟终端”


在我的例子中,即使在输出控制台中将配置设置为“仿真终端”“getpass.getpass()也不起作用。为了解决这个问题,“我将配置设置为使用Python控制台运行。”

但是现在有一个不同的问题:控制台在python控制台中回显密码。如果您不希望发生这种情况,我建议您使用cmd或Linux终端运行该程序。Linux终端中的输出如下所示:

首先在pycharm中使用我的代码,然后单击“运行”,然后单击“编辑配置”,然后选择“输出控制台中的模拟终端”

from selenium import webdriver
from getpass import getpass
email=input("Enter the email:")
password= getpass("Enter the password:")
driver=webdriver.Chrome()
url='https://www.facebook.com/'
driver.get(url)
user_id=driver.find_element_by_id("email")
user_id.send_keys(email)
user_password=driver.find_element_by_id("pass")
user_password.send_keys(password)
login_button = 
driver.find_element_by_id("u_0_b").click()
time.sleep(30)

运行>>编辑配置,但这只适用于运行,不适用于调试。@James它在Windows 10上的调试模式下也适用于我。这是可行的,但如果您一个接一个地请求两个密码,它将跳过第二个密码。无论是否选中此选项,它都适用于调试。唯一的区别是没有检查,它实际上显示了我键入的密码。顺便说一句,我正在使用Intellij和Python插件。将您的密码存储在一个文件中?首先在pycharm中使用我的代码,然后单击“运行”,然后单击“编辑配置”,然后选择“输出控制台中的模拟终端”