Почему он не работает должным образом? - PullRequest
0 голосов
/ 25 апреля 2020

Я написал код, чтобы получить список устаревших python модулей, я хочу обновить все. Для этого мне нужно разрешение администратора. Посмотрите на код ниже.

import sys
from subprocess import Popen,PIPE
process=Popen("pip list --outdated",stdout=PIPE,stdin=PIPE,shell=True,bufsize=1)
data = process.stdout.readlines()
for i in range(2,len(data)):
    temp=data[i].decode("utf-8").split(' ')
    print(temp[0])
    command="runas /user:administrator 'pip install {0} --upgrade'".format(temp[0])
    print(command)
    process=Popen(command,stdout=PIPE,stdin=PIPE,shell=True,bufsize=1)
    process.stdin.write("password".encode("utf-8"))
    print(process.stdout.readlines())

Вывод не такой, как ожидалось.

Unexpected output is here.

пароль верный, но я не могу знаю, почему он не работает.

1 Ответ

0 голосов
/ 26 апреля 2020

Это работает для меня. (windows 10)

import win32com.client
import sys
import sys
from subprocess import Popen,PIPE,call
import time

shell = win32com.client.Dispatch("WScript.Shell")
# shell.AppActivate("Outlook")
shell.SendKeys('runas /user:administrator "pip install pip --upgrade"{ENTER}')
shell.SendKeys("password{ENTER}")
print(shell)
shell.SendKeys('runas /user:administrator "pip install pygame"{ENTER}')
shell.SendKeys("passsword{ENTER}")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...