我发现getpass在PyCharm中不起作用。它只是挂起。
事实上似乎msvcrt.getch和raw_input也不起作用,所以也许问题不在于getpass。取而代之的是' i'一点点PyCharm的stdio处理。
问题是,我无法将我的个人密码放入代码中,因为它最终会出现在SVN中,这对其他人来说是可见的。所以我每次都使用getpass来获取密码。
在搜索中,我所能找到的就是" Pycharm做了圆顶黑客攻击让Django使用getpass"但没有暗示黑客是什么......
我看过getpass,它在Windows上使用msvcrt(所以这个问题可能只在Windows上出现)
我的问题是:这个问题是否存在问题?
答案 0 :(得分:6)
答案 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