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

问题描述 投票:2回答:1

当我需要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

python numpy pip
1个回答
1
投票

正如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

© www.soinside.com 2019 - 2024. All rights reserved.