我想通过 Matlab 调用我在 python 中构建的 Python 模块或用户定义的函数/脚本。我知道在这样的事情成为可能之前我需要涵盖的许多事情,我将列出我迄今为止所做的一切。
- 使用 Anaconda 创建了虚拟环境并安装了我需要的所有依赖项。Python 版本 3.5.2
- 使用 PyCharm 运行脚本并且所有运行良好/按预期运行。
- 在 Matlab 中运行
pyversion(mypath)
时,虽然它显示为“已加载:1”,但我无法在 site-packages 模块上调用任何内容。例如,我什至不能调用像 numpy (py.importlib.import_module('numpy')
) 这样的东西,因为我收到以下错误:
Python 错误:ImportError:导入多数组 numpy 扩展模块失败。您很可能正在尝试导入失败的 numpy 构建。如果您正在使用 numpy git repo,请尝试
git clean -xdf
(删除所有不受版本控制的文件)。否则重新安装numpy。原始错误是:DLL 加载失败:找不到指定的模块。
到目前为止,我已经验证了我所能做的一切。Python 和 Matlab (2016a) 都是 64 位的。虽然,我可以运行这个具有预期结果的小代码片段:
T = 'MATLAB(R) is a high-level language'
wrapped = py.textwrap.wrap(T);
whos wrapped
由于我可以从 PyCharm 正确执行所有内容,而我不能从 Matlab 这边执行,我想知道从 Matlab 或 Anaconda 启用是否有任何限制(在配置中)。
Anaconda 的配置中是否有可能不允许我这样做的设置?或者这是 Matlab 中的一个问题?我不确定,我一无所知。