通过Python安装Linux软件包?

通过Python安装Linux软件包?,python,linux,bash,Python,Linux,Bash,我可以用Bash安装以下软件包: sudo apt安装-y 如何使用Python实现这一点? 我应该从Python执行Bash脚本,还是有一种本机方法来执行?bashCommand=“apt get install-y” bashCommand = "apt-get install -y <program>" import subprocess process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIP

我可以用Bash安装以下软件包:

sudo apt安装-y

如何使用Python实现这一点? 我应该从Python执行Bash脚本,还是有一种本机方法来执行?

bashCommand=“apt get install-y”
bashCommand = "apt-get install -y <program>"
import subprocess
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()enter code here
导入子流程 process=subprocess.Popen(bashCommand.split(),stdout=subprocess.PIPE) 输出,错误=process.communicate()在此处输入代码
您可以从python执行它,但必须使用sudo运行python脚本。可能有一个库以本机方式执行此操作,但我不知道它如何能够安装软件,而无需这样做:在安装时或python脚本启动时要求您为sudo提供密码。否则任何人都可以用Python脚本安装软件


在放置此类代码时要非常小心。对于个人脚本,或者其他python代码的某种安装脚本,都可以。我不会将其放在某些服务器后端代码中。

您可以使用子流程模块执行以下命令:

导入子流程
package_name=“”
subprocess.run([“sudo”、“apt”、“install”、“-y”、包名称],check=True)

请非常小心,不要将根密码硬编码到脚本中。如果要在没有密码提示的情况下运行此代码,请相应地配置sudoers。请注意不要制造安全噩梦。

“我如何使用Python做到这一点?”——仅仅因为您可以,并不意味着您应该这样做。您这样说是出于安全还是性能原因?嗯,您实际上可以在子流程中使用sudo。我测试了它,因为我认为它不起作用。存储密码的另一种方法是使用suid。过去多次使用suid,非常适合在Raspberry Pis上自行解包/安装脚本。