繁体   English   中英

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

[英]How to prevent pip from replacing numpy+mkl with just numpy when installing packages that require numpy?

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

我知道这与可能以某种方式混淆版本的+mkl后缀有关,并且我知道我可以通过从https://www.lfd.uci.edu/~gohlke/pythonlibs下载并安装numpy+mkl来修复它/ ,但是在将 gym 之类的软件包升级到新版本时,每次都手动执行此操作会很烦人。 有什么方法可以防止numpy+mklpip install --upgrade --upgrade 期间被卸载?


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

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

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

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

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

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

我发现有些软件包会强制 pip 重新安装 numpy。 确保使用 mkl(来自 conda)安装 numpy 的最安全(也是唯一)方法是使用 conda 和 pip 卸载,然后使用 conda 重新安装:

conda uninstall numpy
pip uninstall nump
conda install numpy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM