【问题标题】:python doesn't use updated pip scipy packagepython 不使用更新的 pip scipy 包
【发布时间】:2013-12-24 14:38:26
【问题描述】:

我目前正在使用scipy,但在更新它时遇到了问题。 它是通过 pip 安装的,pip list 给了我:

...  
scipy (0.13.2)  
...

但是当我启动我的 python 并执行以下操作时:

import scipy
print scipy.__version__

我明白了:

0.11.0

知道哪里出了问题吗?也许是路径?我在想 python 使用我的 pip 包,因为我首先用它安装了 scipy。

其他信息:
终端中which python 的输出:

/usr/bin/python

print sys.path的输出:

'/Users/*MY_USER*/Documents/workspace/*MY_PROJECT*', 
'/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg', 
'/Users/*MY_USER*/Documents/workspace/*MY_PROJECT*', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages', 'lib'

打印输出scipy.__path__:

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy

which pip的输出:

/usr/local/bin/pip

更新:
看来,另一个版本的 scipy 先从
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
因为它出现在正确的/Library/Python/2.7/site-packages之前

所以如果我跑步
sys.path.insert(1, "/Library/Python/2.7/site-packages")
已加载正确版本的 scipy!

那么,我怎样才能彻底、永久地解决这个订购问题呢?平台 OSX Mavericks。

【问题讨论】:

  • 你的全局python中是否安装了scipy?另外,PYTHONPATH 是什么?
  • 能打印python -c 'import sys;print sys.path;'的结果吗?
  • 上面添加的附加信息。 @kroolik:是的,没有虚拟环境等,并且 pip 不是通过 macports 安装的,而是通过 easy_install 安装的,这可能会导致我听说过的一些奇怪的路径问题。
  • 能否也添加 print scipy.__path__
  • 你能打开一个 python 解释器并手动删除它从中提取 scipy 的路径,然后添加 pip 将文件添加到的路径,看看会发生什么?

标签: python numpy scipy pip


【解决方案1】:

您可以简单地删除(或重命名)旧库的目录或从更新的包创建符号链接。我首先重命名,检查是否一切正常,然后删除它们。

就我而言,pip 正在安装/更新 /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages 中的库,因此该目录始终具有更新版本。但是,我的 python 主要查看 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python,旧版本的 scipy、numpy 和 matplotlib 所在的位置。当我删除旧版本时,新的 python 开始加载更新的模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多