python - 使用 Python 调用不同目录中的 MATLAB 脚本会导致“int64”类型的输入参数的未定义函数“x”
问题描述
目前我正在构建一个使用 MATLAB 和 Python 脚本的测试框架。我有一个主脚本说'MainFramework.py'调用并将参数传递给一个类说'MainClass_X.py'调用并将参数传递给一个函数说'x.py'本身调用并将参数传递给'xm'。
MainFramework.py 的代码格式如下:
from MainClass_X import MainClass_X
arg1="something1"
arg2="something2"
Test=MainClass_X(arg1,arg2)
Test.run()
MainClass_X.py 的代码格式如下:
from x import x
class MainClass_X(object):
def __init__(self,paramater1,parameter2):
self.paramater1=paramater1
self.paramater2=paramater2
def run(self):
x(self.paramater1,self.paramater2)
函数 x.py 的代码格式如下:
import matlab.engine
def x(arg1,arg2):
eng=matlab.engine.start_matlab()
eng.x(arg1,arg2,nargout=0)
当 MainFramework.py、MainClass_X.py、x.py 和 xm 脚本都在同一个目录中时,这些脚本按设计工作。但是,只要我将 MainFramework.py 移动到父目录,脚本就会给我以下 MATLAB 错误:未定义函数 'x'' 用于类型为“int64”的输入参数。
为了更好地理解,请在下面找到目录结构:
__directory1__
MainFramework.py
__directory1/subdirectory1__
MainClass_X.py
x.py
x.m
我已经仔细检查了路径以确保 MainFramework.py 调用了正确的 MainClass_X.py,并且我确信它确实如此。
我正在使用 MATLAB 2020a 和 Python 3.7 以及 Anaconda3 和 Spyder 作为 IDLE。
有什么办法可以绕过这个错误。对于任务的目的,python 脚本位于不同的目录中是非常重要的。
解决方案
推荐阅读
- angular - 角度前端中的 JSON
- python - 将 keras h5 转换为 tensorflow pb 以进行批量推理
- wheelnav.js - 如何使用wheelnav js沿路径弯曲navtitle
- javascript - 使用 javascript 捕获 html 标记值
- java - 在 JUnit 测试用例中使用 Try Catch
- r - 找不到对象“pkgInfo”,r
- graalvm - 通过 Polyglot API 执行 Python 始终需要完整的系统 IO 访问权限
- asp.net - asp.net 是否可以像烧瓶一样将 Url 参数捕获为变量?
- ios - 无法通过 segue 传递数据
- r - 在 R 中的某些观察之前选择组