python subprocess.run返回AttributeError:“模块”对象没有属性“运行”

问题描述

我正在尝试从python脚本执行shell命令。我使用的是python 3.7.3,因此run()函数应该可以正常运行,但始终会抛出 AttributeError: 'module' object has no attribute 'run'错误。我将python的认版本设置为3.7.3。 python --version还返回Python 3.7.3。为了理解这个问题,我写了一个简单的脚本out.py:

#!/usr/bin/env python
import subprocess
subprocess.run(["ls","-l"])

如果我使用sudo python out.py从外壳执行此脚本,它将返回上述错误。如果我用sudo python3 out.py执行它就可以了。我在这里想念什么吗?我从来没有使用过python2。注意:我正在RaspBerry Pi上执行此操作。我要从中执行shell命令的脚本是作为触发例程的一部分被调用的,所以我不知道是否可以在那里进行某些更改(Gammu RunOnReceive指令)

解决方法

通过将root用户的python版本设置为python3来解决我的问题