将 sklearn 从 0.14.1 升级到 0.16.1 不工作

upgrading sklearn from 0.14.1 to 0.16.1 not working

我需要将我的 sklearn 安装升级到 0.14.1,因为我当前的版本没有 agglomerative clustering

我下载了 0.16.1 的源代码,将其解压缩并在我 运行 文件夹中使用 pip 安装:

sudo pip install .

尽管在以下摘录中抱怨缺少地图集

Installing collected packages: scikit-learn
  Found existing installation: scikit-learn 0.14.1
    Not uninstalling scikit-learn at /usr/lib/python2.7/dist-packages, owned by OS
  Running setup.py install for scikit-learn
    Partial import of sklearn during the build process.
    blas_opt_info:
    blas_mkl_info:
      libraries mkl,vml,guide not found in ['/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
      NOT AVAILABLE

    openblas_info:
      libraries  not found in ['/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
      NOT AVAILABLE

    atlas_blas_info:
      libraries f77blas,cblas,atlas not found in ['/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
      NOT AVAILABLE

    /usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1521: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
      warnings.warn(AtlasNotFoundError.__doc__)
    blas_info:
      FOUND:
        libraries = ['blas']
        library_dirs = ['/usr/lib']
        language = f77

      FOUND:
        libraries = ['blas']
        library_dirs = ['/usr/lib']
        define_macros = [('NO_ATLAS_INFO', 1)]
        language = f77

    sklearn/setup.py:73: UserWarning:
        Blas (http://www.netlib.org/blas/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [blas]) or by setting
        the BLAS environment variable.
      warnings.warn(BlasNotFoundError.__doc__)
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options

安装显示成功消息:

Successfully installed scikit-learn
Cleaning up...

然而,安装后检查 scikit-learn 版本显示为 0.14,并且导入 AgglomerativeClustering 失败。你能帮我吗?

aptpip 都是包管理器,可用于全局安装 python 包。经验法则:切勿混用两个试图安装到同一目录中的包管理器。

在这种情况下,pip 足够聪明,不会因 apt 破坏安装,因此旧版本在更新后仍然存在。最简单的修复方法是先执行 apt-get remove python-sklearn

更好的方法是在安装包时严格区分aptpip。我建议根本不要使用 sudo pip。在这种情况下,只允许 apt 全局安装 python 包。在本地,您可以直接使用 virtualenv 或通过 anaconda 创建隔离环境,您可以在其中安装最新的软件包。