Unrecognized python functions when using same-module imports from a custom package
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Shadaab Siddiqie
el 5 de Ag. de 2021
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)
Ver también
Categorías
Más información sobre Call Python from MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!