通过python脚本安装mongo-db。子进程调用失败

时间:2016-06-28 16:22:23

标签: python mongodb ubuntu subprocess

我试图通过python脚本在ubuntu机器上安装mongo-db。 如果我手动执行此操作,请使用here的以下步骤完成此操作。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo echo 'deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.lis
sudo apt-get update
sudo apt-get install mongodb-org

我通过一系列子进程调用在python中表示这些。我所拥有的如下 -

subprocess.call(["apt-key", "adv", "--keyserver", "hkp://keyserver.ubuntu.com:80", "--recv", "EA312927"])
subprocess.call(["echo", "deb", "http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse", "|", "tee", "/etc/apt/sources.list.d/mongodb-org-3.2.list"])
subprocess.call(["apt-get", "update"])
subprocess.call(["apt-get", "install", "mongodb-org"])

基于有关此问题的python教程,这似乎是正确的,然而,脚本似乎失败并且没有安装mongodb。

任何人都可以帮我弄清楚这些子进程调用有什么问题吗?

1 个答案:

答案 0 :(得分:0)

显而易见的差异:sudo并且没有解释|(管道)的shell。见How do I use subprocess.Popen to connect multiple processes by pipes?