问题描述
我正在尝试从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来解决我的问题