python-求高手解救啊!pycharm下getpass.getpass()卡住不运行是什么问题

问题描述

求高手解救啊!pycharm下getpass.getpass()卡住不运行是什么问题

首先声明 下面这几行代码在命令行和eclipse下都能正常运行

import getpass
print "nihao1"
d = getpass.getpass()
print "nihao2"
print "d=", d
运行程序只是打印nihao1,然后可以不停的输入,就是不继续往下运行了,程序一直卡在这里,我是windows系统

然后我查看getpass模块的源码,发现getpass.getpass()的调用的是getpass.win_getpass(), 在这个方法中有一行c=msvcrt,getch().程序就是卡在这里不动了。
我能找到的问题就到这了,,接下来也不知道该怎么解决 ,求大神啊!!!

PS:
刚才又研究了一下源码,win_getpass()方法源码:里面的print语句是我自己调的时候加上的。
def win_getpass(prompt='Password: ', stream=None):
"""Prompt for password with echo off, using Windows getch()."""
print "hahaha i am in "
if sys.stdin is not sys.__stdin__:
print "if sys.stdin is not sys.__stdin__:"
return fallback_getpass(prompt, stream)
import msvcrt
print "import msvcrt"
for c in prompt:
print "for c in prompt:",c
msvcrt.putch(c)
pw = ""
while 1:
print "while 1:"
c = msvcrt.getch()
print "is here "
print c
if c == 'r' or c == 'n':
print "if c == 'r' or c == 'n':"
break
if c == '03':
print "if c == '03':"
raise KeyboardInterrupt
if c == 'b':
print "if c == 'b':"
pw = pw[:-1]
else:
print "else:"
pw = pw + c
msvcrt.putch('r')
msvcrt.putch('n')
print "pw:", pw
return pw


第四行有一句 if sys.stdin is not sys.__stdin__:
在windows下 pycharm中,运行源码时这一句返回的是false,所以程序跳过if语句继续往下执行了,这就进入了while 1:循环, 然后就卡在了刚开始说的c=msvcrt.getch()这里了。我把上面的那个if语句改了一下,把is not 改成 is了,竟然可以运行了。只是多了这么几行输出:
D:Python27libgetpass.py:94: GetPassWarning: Can not control echo on the terminal.
return fallback_getpass(prompt, stream)
Warning: Password input may be echoed.

我只能做到这个程度了,至于为什么会是这样,为什么那个If语句在起作用,这和pycharm有什么关系,我都不知道了,所以求大神指点啊,说一下所以然,其中的原理是什么,应该怎么弄才能在pycharm中正常运行,因为源码在命令行和eclipse中都是正常的。
谢谢啦!!

解决方案

http://ask.csdn.net/questions/178099

时间: 2024-12-23 19:06:33

python-求高手解救啊!pycharm下getpass.getpass()卡住不运行是什么问题的相关文章

求高手出来帮忙看下问题

问题描述 部分代码:Stringsql="selecta.dm_,a.hyqc_,a.hzr_,a.addr_,1asordfromjy_hydaawherea.dm_in(selectb.t_valueasdm_fromJY_USER_BASETYPEb)unionselecta.dm_,a.hyqc_,a.hzr_,a.addr_,0asordfromjy_hydaaorderbyorddesc";System.out.println(sql);List<Object[]&g

eWebEditor在线编辑器,页面显示出现“未能找到路径‘D:\。。。。menuconfig\default.config’的一部分”,求高手解救。

问题描述 在VS中,拖出该控件的时候就出现错误,呈现控件时出错-Unnamed1发生了未经处理的异常.无效的类别字符串(异常来自HRESULT:0x800401F3(CO_E_CLASSSTRING)) 该怎么解决这个问题呢?求救,谢谢各位大侠了! 解决方案 解决方案二:同样遇到这个问题--同求--解决方案三:就是路径有问题呗..你那个路径怎么写的咯~/表示根目录只能在服务端识别../表示上一级目录html的写法..解决方案四:文件不全

求高手解救我,用户注册密码的界面和用户登录的界面,在注册界面将用户注册的密码加密后存到数据库,并且登录界面用明文能够登录,并且进行加密代码,最好加要求附整个源码

问题描述 用户注册密码的界面和用户登录的界面,在注册界面将用户注册的密码加密后存到数据库,并且登录界面用明文能够登录,并且进行加密代码,最好加上验证码代码,谢谢! 解决方案 解决方案二:动手自己写吧,或者一些书上的案例都有吧

class-jsp做一个类似于视频评论下的回复功能的获得数据显示,对前端不是很熟悉,求高手解答

问题描述 jsp做一个类似于视频评论下的回复功能的获得数据显示,对前端不是很熟悉,求高手解答 20C CREATE TABLE videocomment (id int(10) NOT NULL AUTO_INCREMENT/**ID**/createTime timestamp NULL DEFAULT CURRENT_TIMESTAMP/**创建时间**/userId int(10) NOT NULL/**用户ID**/videoId int(10) NOT NULL/**视频ID**/re

eclipse+gradle build过程中出现此问题 求高手帮忙解决下

问题描述 eclipse+gradle build过程中出现此问题 求高手帮忙解决下 Execution failed for task ':PunkHoo:packageAllDebugClassesForMultiDex'. java.util.zip.ZipException: duplicate entry: android/support/v4/internal/view/ SupportMenu.class

mingw-Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招!

问题描述 Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招! 很简单的Hello World 程序,编译时提示: D:MinGWincludec++3.4.5bitscodecvt.h|475 这个文件中引用的 bits/codecvt_specializations.h 文件找不到 请问是哪里出了问题? ?

基础 发散-真心的求高手帮我看看代码,指教下,我很困惑

问题描述 真心的求高手帮我看看代码,指教下,我很困惑 命题:求求1+1/2+1/3+--+1/n的c语言编程 以下是我的代码: #include void main() { float i,j,sum; printf("请输入你想求的位数:n"); scanf("%f",&j); for(i=1;i<=j;i++) { sum+=1/i; } printf("结果为 %fn",sum); } 运行结果不对,但是我觉得思路很清晰,找不

ssh-SSH框架下 jsp页面提交file类型input404 求高手指导

问题描述 SSH框架下 jsp页面提交file类型input404 求高手指导 从页面进入action,名称路径全对,form提交的时候如果file类型的input标 签不选择文件可以找到并进入后台,如果选择文件了则是404.这是什么原因? 求大神给予解答!!!谢谢了!!! 解决方案 这个最好分开做处理,写程序之前先想好流程,别急着写代码 解决方案二: 分析下你的action定义的请求是get的还是post. 最好贴上具体代码!

indows+蓝屏-Windows系统蓝屏,下面是bluescreanView和Windbg分析的结果,求高手帮忙看下~~谢谢

问题描述 Windows系统蓝屏,下面是bluescreanView和Windbg分析的结果,求高手帮忙看下~~谢谢 BlueScream分析结果: ==================================================** Dump File : 121814-18735-01.dmp Crash Time : 2014/12/18 7:19:00 Bug Check String : CRITICAL_OBJECT_TERMINATION Bug Check C