Python 子进程访问被拒绝

标签 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

最佳答案

您在常规终端中运行它吗?在Windows中,需要专门打开终端以获得管理权限:

  1. 在“开始”菜单搜索窗口中,输入 cmd,然后按 Ctrl+Shift+Enter。或者,导航到“所有程序”>“附件”> 右键单击​​“命令提示符”,然后单击以管理员身份运行
  2. 在这个新终端中运行 python 脚本。

编辑:搜索结果显示,导航到安装程序所在目录后执行命令也可能出现问题;请参阅WindowsError [error 5] Access is denied .

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"')

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

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

关于Python 子进程访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31416676/

相关文章:

permissions - Capifony setfacl 权限 : "Operation not permitted"

甲骨文 PL/SQL : Retrieve list of permissioned procedures for account

python - 在python中提取java主类名

python - python3 对传递给 sorted() 的 "key"参数的方法做了什么?

python - Scrapy 分页不起作用并优化了蜘蛛

python - 如何在keras中将三维数组转换为五维数组

python - 如何使用独立的 stdout、stderr 和 stdin fork 一个新进程?

javascript - 如何正确处理页面刷新?

permissions - CentOS6.4/proc目录下的可写文件

Python subprocess.check_output stderr 用法