msc*_*arf 8 python pythonpath enthought scikit-learn canopy
我安装了EPD 7.3.1(现在称为Enthought Canopy),它带有scikit-learn v 0.11.我正在运行Ubuntu 12.04.我需要安装v 0.12的scikit-learn.
scikit-learn doc说克隆存储库,将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的指示吗?
Sic*_*cco 12
scikit-learn网站上描述的行动与EPD中的scikit-learn版本无关.Python将自动使用PYTHONPATH 环境变量中设置的scikit-learn版本,您应将其设置为scit-learn的Git版本的目录路径.
如果在类Unix系统上使用Bash,则应执行以下操作:
/home/yourname/bin/scikit-learn).bashrc并添加该行:export PYTHONPATH="/home/yourname/bin/scikit-learn";python
import sklearnsklearn.__verion__现在应该显示'0.12-git'而不是0.11为什么这样做?Python在内部使用变量sys.path(list路径a)来跟踪应该查找模块和包的所有目录.一旦请求模块或包,Python将按顺序浏览此列表,直到找到匹配项.因此,例如,可以多次列出模块sys.path,但是仅使用列表中首先出现的版本.
每个Python安装都会有自己的默认路径集sys.path.扩展的一种方法sys.path是列出路径PYTHONPATH.一旦Python启动,它将读取此环境变量并将其添加到sys.path列表的开头.因此,如果您将路径添加到另一个版本的scikit-learn to the PYTHONPATHthen(EPD's),Python将首先找到该版本的scikit-learn并使用它而不是上面列出的版本sys.path.
要查看sys.path,只需import sys再print sys.path.另外,例如,如果您只想在一个Python程序中使用0.12版本的scikit-learn并在所有其他Python程序中使用0.11版本作为默认值,那么您可以保留PYTHONPATH空并仅插入scikit-path 0.12手动路径在代码的顶部:
import sys
sys.path.insert(0, '/home/yourname/bin/scikit-learn')
import sklearn
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5559 次 |
| 最近记录: |