我正在尝试从我的 django 应用程序调用外部 python 脚本。我想在外部 python 脚本中调用父模块中的函数。我尝试了以下方法。
使用 subprocess.call :在这种情况下,我无法使用父文件中的函数。目标函数使用 Django 模型来执行一些数据库操作。
导入外部文件:我尝试使用import ()导入外部文件,但无法访问父模块中定义的函数。
示例代码:
from app.models import x
def save():
print x.objects.all()
def do_stuff():
subprocess.call('external_script')
#----------External script --------
''' some code here '''
#Calling save function from parent
save()
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
我试图将下面的字符串与正则表达式匹配,并从中获取一些值.
/system1/sensor37
Targets
Properties
DeviceID=37-Fuse
ElementName=Power Supply
OperationalStatus=Ok
RateUnits=Celsius
CurrentReading=49
SensorType=Temperature
HealthState=Ok
oemhp_CautionValue=100
oemhp_CriticalValue=Not Applicable
Run Code Online (Sandbox Code Playgroud)
使用下面的正则表达式
`/system1/sensor\d\d\n.*\n.*\n\s*DeviceID=(?P<sensor>.*)\n.*\n.*\n.*\n\s*CurrentReading=(?P<reading>\d*)\n\s*SensorType=Temperature\n\s*HealthState=(?P<health>.*)\n`
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:有更好的方法吗?我明确提到了字符串中的每个新行和空格组.但我可以这么说/system.sensor\d\d.*DeviceID=(?P<sensor>.*)\n*.(它对我不起作用,但我相信应该有办法解决它.)
我已经使用该命令在 python3 中安装了模块 librosa,但是当我尝试导入该模块时,它显示以下警告
Warning (from warnings module):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/librosa/util/decorators.py", line 9
from numba.decorators import jit as optional_jit
NumbaDeprecationWarning: An import was requested from a module that has moved location.
Import requested from: 'numba.decorators', please update to use 'numba.core.decorators' or pin to Numba version 0.48.0. This alias will not be present in Numba version 0.50.0.
Run Code Online (Sandbox Code Playgroud)