>我正在尝试从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"])
如果我使用 shell 从 shell 执行此脚本sudo python out.py
它会返回上述错误。如果我用sudo python3 out.py
执行它,它就可以正常工作。我在这里错过了什么吗?我从来没有使用过python2。注意:我在树莓派上这样做。我想从中执行 shell 命令的脚本是作为触发器例程的一部分调用的,所以我不知道我是否可以在那里更改某些内容(Gammu RunOnReceive 指令)
通过将根用户的 python 版本设置为 python3 来修复我的问题