Unrecognized python functions when using same-module imports from a custom package
6 次查看(过去 30 天)
显示 更早的评论
I am unable to get MATLAB to recognize functions within my custom python module if the file is importing anything from another module within the same package.
File Structure:
python_test_lib
| __init__.py
| file_a.py
| file_b.py
file_a.py content:
class ClassA:
def __init__(self, num):
self.num = num
file_b.py content
from file_a import ClassA
def function_b():
ca = ClassA(3)
print(f'My class A: {ca.num}')
In this toy example, the package is partially imported such that ClassA is available through the interperter via
py.python_test_lib.file_a.ClassA()
But no functions from file_b.py are available. Attempting access yields:
py.python_test_lib.file_b.function_b()
--------------
Unable to resolve the name py.python_test_lib.file_b.function_b()
I've tried various syntaxes for the import statement including
import ClassA
from .file_a import ClassA
from python_test_lib.file_a import ClassA
import file_a
0 个评论
回答(1 个)
Shadaab Siddiqie
2021-8-5
From my understanding you want to call python functions in the matlab code. You can do this by setting python path and calling functions as follows:
Set up Python and Python path
pyversion
pathToFile = fileparts(which('file.py'));\
if count(py.sys.pathToSpeech) == 0
insert(py.sys.path,int32(0),pathToFile);
end
call python function
pyOut = py.file.function_name(inputs to the function)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call Python from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!