【问题标题】:Installing an old version of scikit-learn安装旧版本的 scikit-learn
【发布时间】:2020-05-15 08:49:12
【问题描述】:

问题说明

我正在尝试运行一些需要 scikit-learn 18.0 的旧 python 代码,但我安装的当前版本是 0.22,因此当我运行代码时收到警告/无效数据。


我的尝试

我尝试在终端中安装特定版本:python -m pip install scikit-learn==0.18conda,但都没有奏效。我只能安装v 0.22。帮助?谢谢。


终端错误

错误:scikit-learn 构建轮子失败
为 scikit-learn 运行 setup.py clean
scikit-learn 构建失败
安装收集的包:scikit-learn
找到现有安装:scikit-learn 0.22.1
卸载 scikit-learn-0.22.1:
成功卸载 scikit-learn-0.22.1
为 scikit-learn 运行 setup.py install ... 错误
错误:命令出错,退出状态为 1:

通过 conda 环境出错:

PackagesNotFoundError:以下包不可用 当前频道:
- scikit-learn==0.18 这是在创建和激活新环境之后

【问题讨论】:

  • 需要在问题中添加以下详细信息才能充分回答问题:Python 版本、Conda 版本和操作系统。
  • 请同时通过pip发布安装scikit-learn时出现的完整错误信息

标签: python windows scikit-learn pip conda


【解决方案1】:

一次解决一个问题:

python -m pip install scikit-learn==0.18 失败

这可能是因为scikit-learn==0.18,如果你check on pypi 只有whl 文件适用于windows 的python 3.5 和2.7,因此pip 下载源分发然后编译失败,可能因为它不适用于较新的 python 版本

当前频道不提供以下套餐

发生这种情况是因为scikit-learn==18.0 根本不存在于默认的conda 频道中。在我的 win64 机器上,我可以安装的最旧版本是 19.0(您可以通过在 cmd 中键入 conda search scikit-learn 来检查),所以很遗憾无法使用默认的 conda 通道进行安装。有一个名为 free 的频道(通过 anaconda website 找到)具有 scikit-learn 18.0,因此您可以安装:

conda install -c free scikit-learn 

为了确保python版本兼容,我只是创建一个合适的环境:

conda create -n py35 -c free scikit-learn=0.18.0

【讨论】:

  • 太酷了!我不知道您可以使用 -c free 代替 restore_free_channel 配置选项。这让它变得容易多了。现在我必须更改一堆我的答案。
  • 嗯,我现在注意到使用anaconda 频道似乎也可以工作,例如conda search anaconda/win-64::scikit-learn=0.18defaults 不是这种情况,例如 conda search defaults/win-64::scikit-learn=0.18
  • 这很完美!谢谢!我会记住的!
【解决方案2】:

我猜到它发生了什么,我想你会在这里找到答案:

首先让我们检查一下系统中安装的python版本:

python --version                                                                                                                                                                              

> Python 3.8.0

如果您已准备好设置和更新,这应该是您当前的 python 版本,我想这就是问题所在。您可以从其官方 pypi 分发页面here 中查看病态学习版本。如果您查看文档,您会发现该软件包适用于 2.7 或 3.5 python 发行版。

所以要运行您的代码,我想最好的方法是使用virtualenvvirtualenvwrapper(我个人的选择),您可以在其中为您的测试创建一个干净的环境。

# On your terminal
# First let's check if python2 is installed

python2 --version                                                                                                                                                                             > Python 2.7.17

# and pip

python2 -m pip --version                                                                                                                                                                      
> pip 19.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)

# Now create a virtual env using virtualenvwrapper and python2 as our main python

mkdir py2
mkvirtualenv -p python2 -a py2  py2 

# After that the python command will be binded to your python2 installation
python --version
> Python 2.7.17

# Now lets install sckit lib
python -m pip install scikit-learn==0.18

python -m pip freeze                                                                                                                                                                      
> DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
> scikit-learn==0.18

如果现在一切正常,您可以毫无问题地运行您的代码!

记住!!!! Python 2 是 deprecated,您应该更新您的代码以使用更新的 Python 发行版。

另外,在使用 python 时,virtualenv 是一个很好的做法,如果你不知道它需要你的时间来设置!

【讨论】:

  • OP 已经显示 Conda 存在。不建议混合使用 Conda 和 Pip,尤其是在 Anaconda Cloud 上提供软件包时。也不建议添加其他虚拟环境管理工具。
  • 他的要求提到了 scikit-learn。他还提到了使用 conda 和 pip 作为安装方法。当然,如果您使用 conda,则不需要使用 virtualenv,但这不是我的建议。
猜你喜欢
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2022-01-17
  • 2014-06-05
  • 2014-06-27
相关资源
最近更新 更多