来自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的系统包。 这些依赖关系可能很长且很复杂,无法正确构建 源。
仅当Python有一个时,才需要--install-option =“ - prefix =”标志 带有预定义prefix = entry的distutils.cfg配置。
在我man pip
的{{1}}中,为什么没有pip 1.5.4
--user
--install-option
个选项,虽然上面的命令可以运行?
-U
,
这是什么意思?
我如何找出“如果Python有一个带有预定义前缀=条目的distutils.cfg配置”?
什么是“distutils.cfg”用于?
对于--install-option
,它是什么意思?
如果我想将scikit-learn安装到我的系统默认目录, 我应该运行什么命令?是吗
-U
答案 0 :(得分:2)
首先,您应该升级pip
,因为当前版本是6.1.1。运行
pip install --upgrade pip
这样做。我不一定相信man pip
所说的内容,因为它可能适用于pip
的古老版本。相反,请使用文档here。
-U
和--upgrade
是一回事。 --user
是独立的。
您不必担心prefix
事件或distutils.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系统上,包括所有内容,system-或pip
- 已安装)及其版本号在括号内。 awk '{print $1}'
在空格上拆分每一行,并返回第一个字段(包名称)。 while
循环读取每个传入行(包名称)并调用sudo -H pip install -U packagename
,它将查看包是否是最新的,如果不是,它将升级它。我假设Ubuntu安装的系统软件包不会被升级,因为它们没有在PyPI中列出,但我在发现之前就杀死了命令。
答案 1 :(得分:1)
一个选项是安装Anaconda,这样您就可以轻松安装scikit-learn