【发布时间】: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 将文件添加到的路径,看看会发生什么?