在安装需要numpy的软件包时,如何防止pip用numpy替换numpy + mkl?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在安装需要numpy的软件包时,如何防止pip用numpy替换numpy + mkl?相关的知识,希望对你有一定的参考价值。

当我需要pip installpip install --upgrade(或numpy)软件包时,他们倾向于卸载我现有的numpy+mkl(它具有足够高的版本以满足numpy版本的要求)。之后,他们安装没有numpy+mkl,这会导致其他需要MKL的软件包出现问题。发生这种情况的一个例子是gym(在'numpy>=1.10.4'install_requires中有setup.py)。

我知道这与+mkl后缀有关,可能会以某种方式与版本混淆,并且理解我可以通过从numpy+mkl下载并安装https://www.lfd.uci.edu/~gohlke/pythonlibs/来修复它,但是在升级类似包时再次手动执行此操作会很烦人健身房到新版本。有没有办法阻止numpy+mklpip install --upgrade期间被卸载?


对我来说,这发生在Windows 10,Python 3.6上。我还没有检查是否在Linux上发生了相同的情况,但是如果它在那里有所不同,那么也会对它的答案感兴趣。

我当前安装的numpy+mkl版本(通常会自动卸载)是1.13.3+mkl

答案

正如cgohlke在评论中所建议的,使用--upgrade-strategy来解决这个问题。因此,以我们想要从头开始安装gym而不用常规numpy+mkl替换现有numpy安装的示例为例,运行的完整命令是:

pip install --upgrade-strategy only-if-needed gym

或者,如果我们只想升级现有安装,我们还会添加--upgrade

pip install --upgrade --upgrade-strategy only-if-needed gym

以上是关于在安装需要numpy的软件包时,如何防止pip用numpy替换numpy + mkl?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pip 快速安装 OpenCV

pip/conda 安装库出现版本冲突问题

如何从virtualenv导入使用pip安装的模块

Python学习笔记在线用pip下载第三方包

防止软件包安装在旧的 Python 版本上

win7的python3.5安装numpy包