如何从 python (ModuleNotFoundError) 运行带有 scikit-learn 0.24 版的“spherecluster”包?

Posted

技术标签:

【中文标题】如何从 python (ModuleNotFoundError) 运行带有 scikit-learn 0.24 版的“spherecluster”包?【英文标题】:How to run the "spherecluster" package with scikit-learn version 0.24 from python (ModuleNotFoundError)? 【发布时间】:2021-09-10 20:37:40 【问题描述】:

我需要从 https://github.com/jasonlaska/spherecluster 导入模块“spherecluster”。 (蟒蛇/皮皮) 但它不适用于 scikit-learn 软件包版本 > 0.24 的最新版本。

我收到以下错误:

ModuleNotFoundError: No module named 'sklearn.cluster.k_means_'

我发现k_means_ 在以后的版本中被重命名了。 (代码结构改变)

如何解决这个问题?

我是否需要完全重写 spherecluster 中的代码才能使用当前的 sklearn 版本运行?

【问题讨论】:

【参考方案1】:

This is an open issue on the package,从作者缺乏响应的情况来看,似乎被忽视了。继续打扰他们,表达你对 PR 的支持。

否则,正确的解决方案是限制 Conda 环境仅使用兼容版本的 scikit-learn。

## create a new env with the constraint
conda create -n spherecluster python=3.7 pip scikit-learn=0.22

## activate it
conda activate spherecluster

## install the package from 
pip install spherecluster

一个不太合适的解决方案是从 PR 分支安装 spherecluster 包:

conda activate your_env
pip install git+https://github.com/rfayat/spherecluster.git@scikit_update

【讨论】:

以上是关于如何从 python (ModuleNotFoundError) 运行带有 scikit-learn 0.24 版的“spherecluster”包?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Boost.Python 从 python 文件中导入函数

如何从 python 打印 \[ 和 \] 到终端?

Python:如何从带有Python的原始电子邮件源解析诸如:从,到,正文之类的东西[重复]

如何从 python 使用 mongolab 插件到 Heroku?

如何从 python 使用 mongolab 插件到 Heroku?

如何从零学习python?