包含在热情树冠分布中的scikitlearn升级版本

2024-06-08 22:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装了EPD7.3.1(现在被称为“热情雨棚”),它附带了scikit learn v 0.11。我在运行Ubuntu 12.04。我需要安装scikit learn的v 0.12。

scikit learndoc says克隆存储库,将scikit learn目录添加到PYTHONPATH,并在适当的位置构建扩展:python setup.py build_ext --inplace

问题是EPD是它自己的封闭世界(有多个scikit dirs):
./lib/python2.7/site-packages/scikits/
./lib/python2.7/site-packages/sklearn

然后是:
./EGG-INFO/scikit_learn/

我真的不想做实验,因为花了很长时间才把事情调整到这一点。在这种情况下,我应该遵循scikit learn的指导吗?


Tags: py目录ubuntulibpackagessetupsitescikit
1条回答
网友
1楼 · 发布于 2024-06-08 22:58:37

scikit学习网站上描述的操作与EPD中的scikit学习版本无关。Python将自动使用在PYTHONPATHenvironment variable中设置的scikit learn版本,您应该将其设置为Git版本scikit learn的目录路径。

如果在类Unix系统上使用Bash,应执行以下操作:

  • install scikit-learn's latest code执行操作(在本例中,我将其克隆到/home/yourname/bin/scikit-learn
  • 编辑.bashrc并添加行:export PYTHONPATH="/home/yourname/bin/scikit-learn";
  • 打开一个新终端,并通过键入python以交互模式启动Python
    • 类型:import sklearn
    • 类型:sklearn.__verion__现在应该显示'0.12-git',而不是0.11

为什么这么做?Python在内部使用变量sys.path(路径的list)来跟踪它应该在其中查找模块和包的所有目录。一旦请求了模块或包,Python将按顺序遍历该列表,直到找到匹配项为止。因此,例如,一个模块可以在sys.path中多次列出,但只使用列表中最先出现的版本。

每个Python安装都有自己的默认路径集,列在sys.path中。扩展sys.path的一种方法是在PYTHONPATH中列出路径。一旦Python启动,它将读取此环境变量并将其添加到sys.path列表的开头。因此,如果您将scikit learn的另一个版本的路径添加到您的PYTHONPATH中,则(EPD的)Python将首先找到该版本的scikit learn并使用它,而不是sys.path中进一步列出的版本。

要查看sys.path,只需import sys,然后print sys.path。另外,例如,如果您只想在一个Python程序中使用scikit learn的0.12版本,并在所有其他Python程序中使用默认的0.11版本,那么您可以将PYTHONPATH保留为空,并且只在代码顶部手动插入scikit learn 0.12的路径:

import sys
sys.path.insert(0, '/home/yourname/bin/scikit-learn')
import sklearn

相关问题 更多 >