使用自定义包中的相同模块导入时无法识别的python函数
2次浏览(过去30天)
显示旧的注释
如果文件从同一包中的另一个模块导入任何东西,我无法让MATLAB识别自定义python模块中的函数。
文件结构:
python_test_lib
|__init__.py
| file_a.py
| file_b.py
file_a.py内容:
类ClassA:
def__init__(自我,num):
自我。Num = Num
file_b.py内容
从file_a导入ClassA
deffunction_b ():
ca = a类(3)
print(f' my class A: {ca.num}')
在这个简单的例子中,包被部分导入,使得类a可以通过解释器via访问
py.python_test_lib.file_a.ClassA ()
但是file_b.py中没有可用的函数。尝试访问会产生:
py.python_test_lib.file_b.function_b ()
--------------
不能要解析名称py.python_test_lib.file_b.function_b()
我已经尝试了导入语句的各种语法,包括
进口ClassA
从.file_a导入类a
从python_test_lib。file_a进口ClassA
进口file_a
0评论
答案(1)
Shadaab Siddiqie
2021年8月5日
根据我的理解,你想在matlab代码中调用python函数。你可以通过设置python路径并调用如下函数来实现:
设置Python和Python路径
pyversion
pathToFile = fileparts(它(“file.py”)); \
如果count(py.sys.pathToSpeech) == 0
插入(py.sys.path int32 (0) pathToFile);
结束
调用python函数
pyOut = py.file。函数_name(inputs to the函数)