spaCy 无法使用Matlab调用Python代码

u0sqgete  于 3个月前  发布在  Matlab
关注(0)|答案(1)|浏览(85)

如何复现行为
Python代码:文件名:test_spacy.py

import spacy
nlp = spacy.load("en_core_web_lg")
doc = nlp("This is a sentence.")

在Pycharm IDE中运行Python代码时没有出现错误。
用于调用Python代码的Matlab代码

pyenv;
py.importlib.import_module('test_spacy');
path_add = fileparts(which('test_spacy.py'));
if count(py.sys.path, path_add) == 0
    insert(py.sys.path, int64(0), path_add);
end

在运行Matlab代码时出现错误:Error using numpy_ops>init thinc.backends.numpy_ops
Python错误:ValueError: numpy.dtype大小改变,可能表示二进制不兼容。从C头文件中期望96个元素,但实际上得到了88个元素。
Matlab和Python代码都位于同一文件夹中。使用PyCharm创建了一个Python项目。然后创建了Matlab文件并将文件保存在Python项目文件夹中

您的环境

  • 操作系统:Windows 11
  • Python版本:3.12.3
  • spaCy版本:3.7.5
  • 环境信息:C:Users\cse_s\AppData\Local\Programs\Python\Python312\Libsite-packages\spacy
zzlelutf

zzlelutf1#

你遇到的错误是由于不同Python库之间的版本不匹配,特别是NumPy和依赖于它的库,如spaCy。你可以尝试以下步骤,看看问题是否解决:

  1. 在MATLAB中验证Python环境:-
    通过
pyenv

检查
2. 确保此环境与PyCharm中使用的环境相匹配。如果不是,您可以使用

pyenv('Version', 'path_to_your_python_executable');

在MATLAB中设置Python环境。
3. 最后,升级所有依赖项并重新运行matlab代码。
告诉我是否有效。
谢谢!

相关问题