我目前正在使用 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
打印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
输出哪个 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。
最佳答案
您可以简单地删除(或重命名)旧库的目录或从更新的包创建符号链接(symbolic link)。我首先重命名,检查一切是否正常,然后删除它们。
就我而言,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 开始加载更新的模块。
关于python 不使用更新的 pip scipy 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762667/