【问题标题】:Options for installing scikit-learn安装 scikit-learn 的选项
【发布时间】:2015-06-21 22:12:27
【问题描述】:

来自http://scikit-learn.org/dev/install.html#building-scikit-learn-with-pip

pip install --user --install-option="--prefix=" -U scikit-learn

--user 标志要求 pip 在 $HOME/.local 中安装 scikit-learn 文件夹因此不需要root权限。这个标志应该使 pip 忽略以前安装的任何旧版本的 scikit-learn 系统同时受益于 numpy 和 scipy 的系统包。 这些依赖关系可能很长而且很复杂,无法正确构建 来源。

--install-option="--prefix=" 标志仅在 Python 具有 distutils.cfg 配置带有预定义的前缀= 条目。

  1. 在我的pip 1.5.4man pip中,为什么上面的命令可以运行却没有--user--install-option-U选项呢?

    对于--install-option

    • 这是什么意思?

    • 我应该如何找出“如果 Python 有一个带有预定义前缀 = 条目的 distutils.cfg 配置”?

    • “distutils.cfg”有什么用?

    对于-U,是什么意思?

  2. 如果我想将 scikit-learn 安装到我的系统默认目录, 我应该运行什么命令?是吗

    pip install scikit-learn
    

    ?

【问题讨论】:

    标签: python pip scikit-learn


    【解决方案1】:

    首先,你一定要升级pip,因为当前版本是6.1.1。运行

    pip install --upgrade pip
    

    这样做。我不一定相信man pip 所说的话,因为它可能是pip 的古老版本。相反,请使用文档here

    -U--upgrade 是同一个东西。 --user 是独立的。

    您无需担心prefixdistutils.cfg。你会知道你是否拥有它们,因为这是你必须手动设置的东西。所以,试着运行

    pip install scikit-learn -U --user
    

    在您升级pip 之后,希望一切顺利。


    如果您使用的是 Linux 或 Unix 系统(如 OS X),或者您在 Windows 上安装了 GNU 命令行工具,并且您希望 pip 升级您的所有包,这个命令应该在 bash 中工作:

    pip list | awk '{print $1}' | while read -r package; do sudo -H pip install -U "$package"; done
    

    pip list 打印出安装的每个软件包的名称和版本(并且,至少在我的 Ubuntu 14.10 系统上,包括所有已安装的系统或pip),以及括号中的版本号。 awk '{print $1}' 在空白处分割每一行,并返回第一个字段(包名称)。 while 循环读取每个传入行(包名称)并调用sudo -H pip install -U packagename,它将查看包是否是最新的,如果不是,它将升级它。我假设像 Ubuntu 安装的系统包不会升级,因为它们没有在 PyPI 中列出,但我在发现之前杀死了这个命令。

    【讨论】:

    • 谢谢。是否可以升级所有已安装的python包,而无需一一升级?
    • @Tim 看到我的编辑 - 是的,有一点命令行功能是可能的。 应该你盲目升级所有东西吗?这取决于你。您始终可以在文本文件pip list | awk '{print $1}' | cat >> piplist 中生成软件包列表,然后手动查看并删除您不想升级的任何内容。然后,运行cat piplist | while read ...,它应该会做它的事情。
    【解决方案2】:

    一种选择是安装Anaconda,它可以让您轻松安装 scikit-learn

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2014-06-05
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2017-08-05
      • 1970-01-01
      相关资源
      最近更新 更多