Python子进程访问被拒绝

Python子进程访问被拒绝,python,permissions,subprocess,installation,Python,Permissions,Subprocess,Installation,我正在尝试使用python脚本在后台静默地安装java。路径正确,并已通过isfile验证。我收到一个访问被拒绝的异常。我正在本地计算机上以管理员身份运行此程序 subprocess.Popen('C:\Users\xUser\jdk-8u45-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"'); 错误返回 WindowsError: [Error 5] Access is denied 你是在普通的终端上运行这个吗?在Win

我正在尝试使用python脚本在后台静默地安装java。路径正确,并已通过isfile验证。我收到一个访问被拒绝的异常。我正在本地计算机上以管理员身份运行此程序

subprocess.Popen('C:\Users\xUser\jdk-8u45-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"');
错误返回

WindowsError: [Error 5] Access is denied

你是在普通的终端上运行这个吗?在Windows中,您需要专门打开终端以获得管理权限:

  • 在“开始”菜单搜索窗口中,键入cmd并按
    Ctrl
    +
    Shift
    +
    Enter
    。或者,导航到所有程序>附件>在命令提示符上单击鼠标右键,然后单击
    以管理员身份运行
  • 在此新终端中运行python脚本
  • 编辑:搜索结果还可能导致在导航到安装程序所在的目录后执行命令时出现问题;看

    最后,我总是使用Unix命令数组(不确定Windows中是否需要),而不是一个长字符串,例如


    subprocess.Popen(['jdk-8u45-windows-x64.exe','/s','ADDLOCAL=“ToolsFeature,SourceFeature”]”)

    所以我实际上已经尝试过了。我已经可以作为管理员从命令行运行C:\Users\xUser\jdk-8u45-windows-x64.exe/s ADDLOCAL=“ToolsFeature,SourceFeature”。我只是在scriptCloser中看到了子流程的问题!现在只有这个问题了:assert os.path.isdir(install_dir)assertionError您是否在
    “C:\Users\xUser\”
    之前包含了
    r
    ?WindowsError:[Error 740]请求的操作需要提升OK,因此现在您正在实际运行该文件。此错误表示您没有正确的特权/权限。因此,请确保您现在正在以管理员身份打开的命令提示符中运行此python脚本。不要认为这会导致错误,但可能值得在字符串前面加上r:r'C\Users\…,以便将其解释为原始字符串。相关:。确保
    导入getpass;打印(getpass.getuser())
    打印期望值。
    install_dir=r"C:\Users\xUser\"
    assert os.path.isdir(install_dir)
    os.chdir(install_dir)
    subprocess.Popen('jdk-8u45-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"')