這裏的程序:subprocess.call不PyCharm工作(Linux版)
if os.name == 'posix' and getpass.getuser() != 'root':
from subprocess import call
call(["sudo", sys.executable, os.path.realpath(__file__), "--root-install"])
當我從終端運行它,它工作正常:
> [sudo] Password for user:
但是,當我從PyCharm的運行終端保持空白。
我也嘗試手動設置stdin=sys.stdin, stdout=sys.stdout
,但那並沒有改變任何東西。
我在做什麼錯在這裏?
pycharm終端不支持sudo getpass方法。你可能想'pexpect':http://stackoverflow.com/questions/18046508/python-pexpect-pxssh-with-sudo-and-eof –
感謝您的輸入。我想過提供密碼給'sudo',但是我怎麼會說密碼? 'getpass.getpass'在PyCharm中似乎也不起作用。 –
nope,'getpass'也需要原始終端。您可以嘗試檢測它,如果不是普通終端(測試'hasattr(sys.stdin,「isatty」)'),並且它不是普通終端,則使用像wx或tk這樣的GUI來提示輸入密碼隱藏字母) –