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

Installing mongo-db via a python script. Subprocess calls fail

我正在尝试通过 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 未安装。

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

明显的区别:sudo 和缺少 shell 可以解释 |(管道)。参见 How do I use subprocess.Popen to connect multiple processes by pipes?