如何在PyCharm中使用Python getpass.getpass

时间:2015-02-18 08:56:14

标签: python pycharm

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

事实上似乎msvcrt.getch和raw_input也不起作用,所以也许问题不在于getpass。取而代之的是' i'一点点PyCharm的stdio处理。

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

在搜索中,我所能找到的就是" Pycharm做了圆顶黑客攻击让Django使用getpass"但没有暗示黑客是什么......

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

我的问题是:这个问题是否存在问题?

6 个答案:

答案 0 :(得分:6)

对于PyCharm 2018.3

转到“编辑配置”,然后选择“在输出控制台中仿真终端”。

答案 1 :(得分:5)

I've run into this running Pycharm CE 4.5 on Windows. The workaround I use is to run your program in debug mode, then you get a console tab where you can enter your password when using getpass.

答案 2 :(得分:1)

通常的解决方案是将凭据存储在您标记为VCS的文件中。然后就是:

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

或者,在环境变量中指定它们。这两种方法都应该解决PyCharm对stdin

的处理问题

答案 3 :(得分:1)

不幸的是,getpass()往往会失败(我用IDLE和PyScripter测试它在Python 3.4上没有任何成功)。我建议使用easygui中的密码盒 - 如果你不使用ver,它可以很好地工作。 0.98(有些东西搞砸了),使用ver是安全的。 0.96。

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

python setup.py install

并在程序中使用passwordbox:

from easygui import passwordbox
password = passwordbox("PASSWORD:")

答案 4 :(得分:1)

在第一次使用时,我的代码在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)

答案 5 :(得分:0)

就我而言,即使将配置设置为“ 在输出控制台中模拟终端”,getpass.getpass()也不起作用。为了解决该问题,“ 我将配置设置为“使用Python控制台运行”” Editing the configuration

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