Python Enthound Canopy发行版中包含scikit learn的升级版本

Python Enthound Canopy发行版中包含scikit learn的升级版本,python,scikit-learn,enthought,canopy,pythonpath,Python,Scikit Learn,Enthought,Canopy,Pythonpath,我已经安装了EPD7.3.1(现在称为Enthound Canopy),它与scikit learn V0.11一起提供。我正在运行Ubuntu 12.04。我需要安装scikit learn的0.12版 scikit学习克隆存储库,将scikit学习目录添加到PYTHONPATH,并在适当的位置构建扩展:python setup.py build\u ext--inplace 问题是,环保署是它自己的封闭世界(有多个Sciket目录): /lib/python2.7/site packages

我已经安装了EPD7.3.1(现在称为Enthound Canopy),它与scikit learn V0.11一起提供。我正在运行Ubuntu 12.04。我需要安装scikit learn的0.12版

scikit学习克隆存储库,将scikit学习目录添加到PYTHONPATH,并在适当的位置构建扩展:
python setup.py build\u ext--inplace

问题是,环保署是它自己的封闭世界(有多个Sciket目录):
/lib/python2.7/site packages/scikits/

/lib/python2.7/site packages/sklearn

还有:
/EGG-INFO/scikit\u learn/


我真的不想做实验,因为要把事情调整到这一点需要很长时间。在这种情况下,我是否应该遵循scikit learn的指示?

scikit learn网站上描述的操作在EPD中无论scikit learn版本如何都有效。Python将自动使用
PYTHONPATH
中设置的scikit学习版本,您应该将其设置为scikit学习的Git版本的目录路径

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

  • 执行以下操作(在本例中,我将其克隆到
    /home/yourname/bin/scikit learn
  • 编辑
    .bashrc
    并添加以下行:
    export PYTHONPATH=“/home/yourname/bin/scikit learn”
  • 打开一个新终端,通过键入
    Python
    • 类型:
      import sklearn
    • 键入:
      sklearn.\uu验证\uuuuuu
      现在应该显示
      '0.12-git'
      ,而不是
      0.11
为什么这样做有效?Python在内部使用变量
sys.path
(路径的
列表)来跟踪它应该在其中查找模块和包的所有目录。一旦请求了一个模块或包,Python将依次遍历此列表,直到找到匹配项为止。因此,例如,一个模块可以在
sys.path
中多次列出,但只使用列表中最先出现的版本

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

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

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

在堆栈溢出时,社区对不好的问题进行向下投票,对好的问题进行向上投票。我想暂时不提这个问题,但如果人们开始对它投反对票,那么你就有一个很好的迹象表明你可能想要删除它。我遇到了同样的问题,但我有一台Mac电脑。我只通过macports安装了scikit(不使用scikits setup.py,总是中途出错)。但是,我找不到bashrc。我想做的就是将EPD(学术版)中的Scikit更新到.13,这非常困难,任何帮助都将不胜感激@Shinjitsu尝试使用.profile而不是.bashrc。让我知道它是否有效。@plurker奇怪的是spotlight找不到.profile或.bashrc。然而,我终于能够让它工作了!然而,我已经有一段时间没有这么做了。我相信我从Enthound发行版中卸载了这个包,然后使用zip文件中提供的文件在终端中使用“install”命令安装了它。