如何解决模块“scipy.sparse”在网状虚拟环境中没有属性“linalg”错误
我编写了一个函数,它在 python 中完全按照我的意愿工作,但是当我尝试在 R 中运行它时,我遇到了 reticulate 的问题。我已经解决了这个问题,并将其简化为这个问题。我在python中有这个功能:
def get_largest_eigenvalue(inc_mat):
eigen_val = scipy.sparse.linalg.eigs(inc_mat,k = 1)
eigen_val = eigen_val[0] / inc_mat.shape[0]
return eigen_val
本质上这个函数需要一个 csr_matrix 并返回其最大的特征值。它应该适用于任何 csr_matrix。当我使用 reticulate 运行此代码时出现错误,解决此问题将解决我更大的问题。
要以网状运行此代码,我运行
library(reticulate)
use_virtualenv("default")
我之前运行过这段代码将 scipy 安装到这个虚拟环境中
virtualenv_install("default",c("scipy"))
然后我使用了
source_python("file_name.py")
加载我所有的 python 函数,包括上面的函数。除了上面的功能,我加载的所有其他功能都完美无缺。当我尝试运行它时,我收到以下错误
py_call_impl(callable,dots$args,dots$keywords) 中的错误: AttributeError: 模块 'scipy.sparse' 没有属性 'linalg'
我在这里有点超出我的深度,我尝试过运行代码
virtualenv_install("default",c("scipy.sparse"))
但这会导致更多错误并且不起作用。任何帮助,将不胜感激!谢谢!
解决方法
将此显式导入添加到您的代码中:
import scipy.sparse.linalg
仅导入 scipy.sparse
不会自动导入 linalg
子模块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。