使用Python脚本在Ubuntu中安装Git
我正试图写一个脚本来检查Ubuntu中的必备软件,如果没有安装,就继续安装它 我是Python的新手,我知道Python的使用Python脚本在Ubuntu中安装Git,python,git,ubuntu,subprocess,Python,Git,Ubuntu,Subprocess,我正试图写一个脚本来检查Ubuntu中的必备软件,如果没有安装,就继续安装它 我是Python的新手,我知道Python的子流程模块可以用来实现这一目标 我已经写了下面的示例代码,但不确定为什么失败 import subprocess c = subprocess.Popen(['sudo','apt-get','install','git'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT) gr
子流程
模块可以用来实现这一目标
我已经写了下面的示例代码,但不确定为什么失败
import subprocess
c = subprocess.Popen(['sudo','apt-get','install','git'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
grep_stdout = c.communicate(input='root')[0]
print(grep_stdout)
当我运行这个程序时,我得到以下错误
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
我是不是遗漏了什么
有大量的先决条件。我只是想问问 用户安装所有这些软件将是一件令人头疼的事。那就 考虑编写一个函数来测试软件,如果 未安装的东西将继续为他安装 有几种方法可以做到这一点:
自述文件或文档中提供需要安装的软件列表
根目录运行它
顺便说一下,sudo
可能不会安装在所有系统上
有大量的先决条件。我只是想问问
用户安装所有这些软件将是一件令人头疼的事。那就
考虑编写一个函数来测试软件,如果
未安装的东西将继续为他安装
有几种方法可以做到这一点:
检查软件是否存在,如果没有,退出程序时会显示一条消息,列出要安装的缺失组件
在自述文件或文档中提供需要安装的软件列表
创建一个列表,列出所需的依赖项;并让用户使用自己喜欢的方法安装
如果您的程序必须安装软件本身(它真的必须安装吗?),则指示用户以提升的权限运行您的脚本。在您的文档中,要求他们以根目录运行它
顺便说一下,sudo
可能不会安装在所有系统上。导入子流程
c=subprocess.Popen(['sudo','yum','install','git','-y'],
stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.stdout)
grep_stdout=c.communicate(input='root')[0]
打印(grep_stdout)
导入子流程
c=subprocess.Popen(['sudo','yum','install','git','-y'],
stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.stdout)
grep_stdout=c.communicate(input='root')[0]
打印(grep_stdout)
为什么要用Python编写此脚本?Ubuntu的软件包管理工作得很好。如果你的程序依赖于Git,我建议在Git不存在的情况下让它优雅地失败,让用户按照自己的意愿安装/编译Git。有大量的先决条件。我只是觉得要求用户安装所有这些软件会让人头疼。因此,只要考虑编写一个函数来测试软件,如果没有安装某些东西,就会继续为他安装一个合理的思考过程@Burhan的答案非常好,涵盖了所有的主要选项。为什么要用Python编写这个脚本?Ubuntu的软件包管理工作得很好。如果你的程序依赖于Git,我建议在Git不存在的情况下让它优雅地失败,让用户按照自己的意愿安装/编译Git。有大量的先决条件。我只是觉得要求用户安装所有这些软件会让人头疼。因此,只要考虑编写一个函数来测试软件,如果没有安装某些东西,就会继续为他安装一个合理的思考过程@Burhan的回答太棒了,并涵盖了您的所有主要选项。在centos或RHEL上安装git时请使用python。如果您正在键入代码,请按Ctrl+K对其进行编码。并解释您的答案,以便其他人能够理解。在centos或RHEL上安装git时请使用python。如果您正在键入代码,请按Ctrl+K对其进行编码。并解释您的答案其他人都能理解。