我一直在讨论numpy的问题,特别是可以访问numpy.stack
和numpy.moveaxis
之类的新功能,这些功能自v1.10开始实施。
我使用numpy
更新了pip
,这是我的python的首选包管理器。 pip install --upgrade numpy
回归:
Requirement already up-to-date: numpy in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
当我运行pip freeze | grep numpy
时,我得到:numpy==1.13.3
。但是,如果我尝试在终端中运行python:
>>> import numpy
>>> numpy.stack
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'stack'
>>> numpy.__version__
'1.9.2'
>>> numpy.__file__
'/Library/Python/2.7/site-packages/numpy-override/numpy/__init__.pyc'
很明显,python正在尝试使用numpy-override.pth
指定的旧安装。我认为这是在我安装Quantum GIS时使用的(我使用kyngchaos安装程序)。我想更新这个版本的numpy,但我认为这可能会破坏QGIS的依赖性。所以,我想绕过这个并使用由numpy
安装的pip
的更新版本。但是我的印象是numpy-override.pth
否决了所有其他路径设置,我需要一个允许QGIS继续工作的解决方案。
有什么建议?
运行Mac OS X 10.11.6 El Capitan。
删除numpy-override.pth
。它所做的只是告诉python在哪里找到numpy
。如果它告诉python在错误的地方看,那么它就没有完成它的工作。默认情况下,python会查看site-packages
。然而,pth
获得第一个dib并且可以告诉python首先搜索其他地方。由于numpy
确实存在于override目录中,因此python很乐意使用该版本。
但是,GIS堆栈上的this question表示QGIS希望在pth文件所在的位置(使用覆盖位)找到numpy。
因此,您可能更喜欢使用--prefix
选项重新安装numpy并告诉pip
将numpy
放在override目录中。即。
pip install numpy --target=/Library/Python/2.7/site-packages/numpy-override