MATLAB可以';t使用导入调用Python模块

MATLAB可以';t使用导入调用Python模块,python,matlab,Python,Matlab,我按照第页的说明在python模块中使用MATLAB调用python代码 # mymod.py def search(words): """Return list of words containing 'son'""" newlist = [w for w in words if 'son' in w] return newlist 然后在MATLAB中运行 N = py.list({'Jones','Johnson','James'}) py.mymod.sear

我按照第页的说明在python模块中使用MATLAB调用python代码

# mymod.py

def search(words):
    """Return list of words containing 'son'"""
    newlist = [w for w in words if 'son' in w]
    return newlist
然后在MATLAB中运行

N = py.list({'Jones','Johnson','James'})
py.mymod.search(N)
并获得所需的输出。然而,当python模块本身包含导入时,我无法使事情正常工作。例如,将单行
import numpy作为np
添加到
mymod.py
会产生错误

Undefined variable "py" or class "py.mymod.search"
在MATLAB中运行相同的行时。如何解决此问题?

在第110页的书中,您可以看到出现此错误的可能原因以及如何排除故障的列表

原因:

  • 第1-70页“未安装Python”
  • 第1-70页的“Windows平台上Python的64位/32位版本”
  • 第1-71页“MATLAB找不到Python”
  • 第1-71页的“用户定义Python模块错误”
  • 第1-71页“Python模块不在Python搜索路径上”
  • 第1-72页的“模块名称冲突”
  • 第1-72页“Python试图在错误的模块中执行命令”

  • 我建议您仔细阅读此解决方案列表,因为您可以看到您的错误可能有几个原因,如果没有更多信息,我们很难知道是哪一个原因。

    这些问题都无法解决这里发生的问题。请注意,让事情正常运行和破坏它们之间的唯一区别是numpy导入。事实上,如果没有这一点,一切都能正常工作,这证明上述可能性不是问题所在。你确定MATLAB调用的是“正确的”Python版本吗?NumPy是为它安装的吗?您可以使用import sys检查Python可执行文件的完整路径;系统可执行文件