python - Python:使用 sudo 调用 C 函数
问题描述
我的 python 脚本正在使用 Extensions 来调用另一个必须使用 sudo 运行的 C 函数。我可以从普通的python脚本成功调用函数:
sudo python my_py_scr.py
而“my_py_scr.py”包含以下内容
import MyModule
MyModule.mymethod("in_arg")
现在我进一步开发了这个“my_py_scr.py”来执行其他功能,所以它看起来像:
import MyModule
from rgbmatrix import RGBMatrix, RGBMatrixOptions
#... some definitions
self.matrix = RGBMatrix(options = options)
MyModule.mymethod("in_arg")
现在的问题是:MyModule.mymethod没有调用嵌入式 C 函数,因为它需要 root 权限。我收到以下错误消息
Must run as root to be able to access /dev/mem
Prepend 'sudo' to the command
我在 RaspberryPi 中运行此代码。我希望如果有人明白为什么当我添加
self.matrix = RGBMatrix(options = options)
sudo 特权没有传递给
MyModule.mymethod("in_arg")
解决方案
事实证明,错误消息具有误导性..问题不在于 sudo 凭据,而在于 /dev/mem 的访问。
因为我正在研究 Raspberry Pi,所以两个函数(mymethod 和 RGBMatrix)都试图访问 Raspberry 的 GPIO。因此 mymethod 无法访问 GPIO,因为它被锁定。
推荐阅读
- vb.net - 无法在 .Net 应用程序中找到请求的 .Net Framework Data Provider for Oracle
- scala - 为什么 Scala 抱怨类型不匹配?
- java - android studio中预热状态的高推理时间
- json - 如何将单独的 ProfilePic 图像 url 添加为 JSON 的参数值,这是 swift 中的参数之一
- object - 1120:访问未定义的属性“selectObject”
- python - ModuleNotFoundError:没有名为“电子商务”的模块
- javascript - Firestore - 按两个不同字段中的两个数组包含查询进行过滤
- javascript - 如何使用时间值对数组进行排序?
- mongodb - 无法将安装在 aws ec2 上的 mongodb 与我的 Windows 机器连接
- html - 填充速记与 4 行代码的 CSS 问题