2014-10-09 27 views
0

我的工作,我没有root访问权限的机器上。我已经为我的用户帐户安装了scikit-learn库。该机器已经安装了旧版本的SciPy(版本0.7.2)。许多SKLearn的功能需要更新版本的SciPy。使用用户安装Python库

当我安装SciPy的较新版本的easy_install --user,我还是看到了旧版本时,我将其导入。同样,SKLearn仍然使用旧版本的SciPy,并且无法使用--user标志导入。

easy_install -U --user scipy 

似乎安装好了... ...

现在,蟒蛇的内部:

import scipy 
scipy.__version__ 
> '0.7.2' 

from sklearn.linear_model import LogisticRegression 
---> 23 from scipy.sparse.linalg import lsqr 
    24 
    25 from ..externals import six 

ImportError: cannot import name lsqr 

如何使用SciPy的正确版本?

+0

注意,一些蟒蛇分布,如蟒蛇,可以安装为完全由用户 – mdurant 2014-10-09 18:41:16

回答

0

你可能需要调整你的$ PATH或$ PYTHONPATH设置。根据the easy_install docs on the --user options安装发生在site.USER_BASE。

因此,在命令行运行python -c "import site; print site.USER_BASE",然后去任何地方打印出来,以确保你的包被安装在那里。如果是,你可以添加以下内容到你的.bashrc为未来:

export PYTHONPATH=$WHATEVER_WAS_JUST_PRINTED_OUT:$PYTHONPATH

+0

这有助于!我在错误的地方查找用户库安装的位置,这帮助我追踪了它。事实证明,scipy没有安装。 – cjrieds 2014-10-12 14:08:12

+0

非常次要的评论,你不需要$前面的WHATEVER_WAS_JUST_PRINTED_OUT – cjrieds 2014-10-12 14:08:45

+0

啊是的,这只是一个通用的方式去反悔任何变量(我们已经保存打印的东西到WHATEVER_WAS_JUST_PRINTED_OUT图像),我可以看到为什么这是令人困惑,但对不起那。 – dreamriver 2014-10-13 21:56:40