我正在尝试为R编写一个可以与Rstudio一起使用的getpass函数。我尝试过使用getpass C函数(* nix,带有Rcpp)以及使用rPython从python中使用getpass,两者似乎都在终端中工作,但是在输入密码并点击返回后导致Rstudio提示冻结
python的get pass输出是,
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/getpass.py:83: GetPassWarning: Can not control echo on the terminal.
passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.
并使用getpass(const char *prompt);
我只是得到永远不会返回R提示符的密码提示。
根据要求提供一些在终端中工作的代码片段,但不在R-studio中,
library(rPython)
python.exec("import getpass")
pass = python.get("getpass.getpass()")
Rcpp /内联代码,
library(inline)
str = 'std::string pass = (const char *) getpass("Password: ");\n;\n return(wrap(pass));'
testfun = cxxfunction(signature(),body=str,plugin="Rcpp")
testfun()
注意我在Mac上,但在getpass()
的其他* ix盒子上应该是相同的。
任何线索?