【问题标题】:Possible to circumvent numpy-override.pth for python?可以绕过python的numpy-override.pth吗?
【发布时间】:2018-01-01 19:45:46
【问题描述】:

我遇到了 numpy 的问题,特别是可以访问自 v1.10 以来实施的新功能,例如 numpy.stacknumpy.moveaxis

我已经使用pip 更新了numpy,这是我的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 的依赖关系。所以,我想规避这个问题并使用pip 安装的numpy 的更新版本。但是我的印象是numpy-override.pth 推翻了所有其他路径设置,我需要一个允许 QGIS 继续工作的解决方案。

有什么建议吗?

运行 Mac OS X 10.11.6 El Capitan。

【问题讨论】:

  • 我必须删除numpy-override并重新安装numpy

标签: python macos numpy


【解决方案1】:

删除numpy-override.pth。它所做的只是告诉 python 在哪里可以找到numpy。如果它告诉 python 在错误的地方寻找,那么它就没有做它的工作。默认情况下,python 将查找site-packages。但是,pth 获得第一个 dib,可以告诉 python 先搜索其他地方。由于 numpy 确实存在于 override 目录中,因此 python 很乐意使用该版本。

然而,GIS 堆栈交换中的this question 指出,QGIS 期望在 pth 文件状态(带有覆盖位)的位置找到 numpy。

因此,您可能更喜欢使用--prefix 选项重新安装numpy,并告诉pipnumpy 放在覆盖目录中。即。

pip install numpy --target=/Library/Python/2.7/site-packages/numpy-override

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多