【发布时间】:2020-12-21 10:12:39
【问题描述】:
我必须从 python 函数中获取连续数据,它的库之一(Overlay)取决于 root 权限。我必须使用 Flask 运行该 python 函数。
首先,我已经搜索了如何授予对 python 脚本的 root 访问权限,但不幸的是,我没有找到任何模仿我的案例。
我采取的方法 --
1/ 包含 Overlay 库的 Python 文件假设名称为 child.py,其中包含函数名称 status_data
from pynq import PL
from pynq import Overlay
def main_path():
ol = Overlay("/home/xilinx/pynq/overlays/design_4/design_1_wrapper.bit")
return ol
def status_data():
ol = main_path()
data = '''my_code'''
return data
2/ Flask 文件名为 app.py 我需要通过端点获取连续数据
from create_json_data import status_data
from flask import Flask, render_template
from flask import jsonify
'''mayn others lib, doesn't include'''
'''my_code'''
@app.route("/auto_update_table")
def parse_auto_update_table(name=None):
data_json = status_data()
return jsonify(data_json)
3/ 两个文件都在同一个文件夹中。我已经用sudo python3 child.py 运行了那个 child.py 并且它可以工作。由sudo python3 app.py 执行 Flask 代码。我的猜测是 app.py 以sudo 运行,因此它将使用具有 root 权限的所有其他依赖项。但我失败了。它执行,但过了一会儿它崩溃了。
是否有任何解决方法可以从 app.py 以 root 权限调用 child.py 文件的 status_data 函数而不会崩溃?安全不是问题,因此我可以向任何脚本文件透露我的凭据,如果还需要,我可以手动提供 密码,但只能手动输入一次,因为这是一个连续的过程,因此一遍又一遍地输入密码不是切实可行的解决方案。
【问题讨论】:
标签: python-3.x flask root sudo