- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图更喜欢来自 CondaForge 的包(为了可用性和兼容性)。然而,Conda 似乎更喜欢来自其他 channel 的核心库版本(例如 NumPy)。
例如,当我尝试安装一个新库时,Conda 会提出降级 NumPy,但如果我要求安装相同的库和 NumPy,Conda 不再建议降级。为什么?
$ conda install -c conda-forge beautifulsoup4
The following NEW packages will be INSTALLED:
beautifulsoup4: 4.6.3-py36_0 conda-forge
The following packages will be UPDATED:
numpy-base: 1.14.3-py36h0ea5e3f_1 --> 1.15.0-py36h3dfced4_0
The following packages will be DOWNGRADED:
blas: 1.1-openblas conda-forge --> 1.0-mkl
numpy: 1.15.1-py36_blas_openblashd3ea46f_1 conda-forge [blas_openblas] --> 1.15.0-py36h1b885b7_0
scikit-learn: 0.19.2-py36_blas_openblasha84fab4_201 conda-forge [blas_openblas] --> 0.19.1-py36hedc7406_0
scipy: 1.1.0-py36_blas_openblash7943236_201 conda-forge [blas_openblas] --> 1.1.0-py36hc49cb51_0
Proceed ([y]/n)? n
$ conda install -c conda-forge beautifulsoup4 numpy
The following NEW packages will be INSTALLED:
beautifulsoup4: 4.6.3-py36_0 conda-forge
Proceed ([y]/n)? y
是否存在可以提供更好行为的偏好?
最佳答案
发生这种情况是因为您有两个 channel (conda-forge 和默认 channel ),它们都包含 NumPy(及其依赖项),但可能具有不同的版本/构建号。
例如,假设您要安装 SciPy(它依赖于 NumPy)并且世界状态是:
并且您的 channel 顺序中有高于默认值的 conda-forge。如果你说 conda install scipy
,那么 Conda 将从 conda-forge 中获取 SciPy(因为它是最高版本号)。在扫描 SciPy 的依赖项时,它会注意到默认情况下有一个更新版本的 NumPy。 Conda 认为它很有帮助,即使您已经从 conda-forge 安装了它,也会从默认情况下安装更新版本的 NumPy。如果有 NumPy 依赖的包,则必须降级才能使其正常工作,就这样吧。
相反,conda install scipy numpy
或 conda config --add pinned_packages conda-forge::numpy
您将跳过该部分图表的依赖项查找,然后导致 Conda 求解器跳到不同的 channel 。
这是一个相对简单的示例,绝对没有涵盖每天出现的所有奇怪的边缘情况。
也就是说,Conda v4.6(尚未发布)将添加“严格 channel 优先级”的概念。这将确保求解器首先按照给定的 channel 顺序查找包,并且只有在找不到依赖项时才会跳到不同的 channel 。
这将解决我们一直生活的许多这些猖獗的升级/降级问题。
关于python - conda 锻造 : Why does Conda inconsistently want to downgrade NumPy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305421/
尝试使用命令 conda update conda 从终端更新 conda 时出现错误.它在说: Solving environment: failed UnsatisfiableError: The
在 conda 中,当我尝试安装软件包时,出现此错误: CorruptedEnvironmentError: The target environment has been corrupted. C
我想在一个特定的 conda 环境中安装带有 conda 的程序,并能够使用来自所有 conda 环境的相关命令。 我的目标是让学生在任何平台(尤其是 Windows)上安装 Mercurial(加上
我遇到了一个麻烦的问题。 我的 pip 和 /home/xxx/local/anacoda2/bin 的 python 都可以,但是 conda 仍然不起作用。当我在我的 ubuntu16.04 终端
我已经在普通机器上设置了 Conda 环境。它工作正常。我想在一台无法访问互联网的机器上克隆这个环境(我只能通过 SSH 进入)。 我最初的想法是压缩 Conda 留下的包缓存并将其移动到气隙机器上的
我想要两个环境:生产环境是测试环境的严格子集。我如何使用 Conda(或 micromamba)实现这一目标? 测试需要一些不需要捆绑在生产 docker 镜像中的额外实用程序。主要思想是确保生产安装
每次打开终端时都会显示以下代码行。 Traceback (most recent call last): File "", line 3, in ImportError: No module n
我尝试使用以下命令更新 conda: ~$ conda update conda 它输出以下消息: WARNING conda.base.context:use_only_tar_bz2(632):
如何仅列出 conda 中针对特定环境显式安装的软件包?有没有办法做到这一点? 最佳答案 @Sjlver 的评论链接到的页面( https://github.com/conda/conda/issue
conda 文档指定: conda clean [-h] [-y] [--dry-run] [--json] [--debug] [--verbose] [-q] [-a] [-i] [-l] [-t
当我克隆一个 Conda 环境时 conda create --name thenewenv --clone theorigenv 我注意到 theorigenv 的修订历史丢失了 conda act
我在 Conda 环境中安装了一堆软件包,包括带有 NVIDIA 工具包的 docker 容器和一些其他非 python 库。安装占用了大约 10 GB 的磁盘空间。但是当我删除 Conda 环境时,
documentation指出克隆以这种方式工作:conda create --name myclone --clone myenv但是,这将始终默认创建环境 myclone进入我几乎没有磁盘存储空间
这个问题在这里已经有了答案: Why are packages installed rather than just linked to a specific environment? (1 个回答)
How to list package versions available with conda有有用的答案,其中之一在 https://stackoverflow.com/a/47795843/2
后 conda update --all 我无法再启动 spyder。如果我在终端中运行 spyder,我会收到以下错误: /anaconda3/bin/pythonw: line 3: /anaco
对于给定的 conda包,我如何列出依赖它的包? 我最近在一个已经有 MPI (openmpi) 版本的大学集群上安装了 anaconda。 mpich2包和mpi4py与 anaconda 一起安装
创建虚拟环境时可以将路径/Users/nolan/miniconda/envs/更改为另一个路径吗?我希望它特定于我的项目目录。 (正如我们可以使用 virtualenv 所做的那样) $conda
激活 conda 环境时,conda 会记住之前激活的环境。例如,如果没有激活任何环境,则调用 conda activate foo 然后调用 conda deactivate 将导致没有任何环境处于
我使用 PyCharm 创建了一个带有 conda 解释器的项目。 Pycharm自动为其创建conda环境。不久之后,我意识到我想要该项目的另一个地点。因此我删除了项目文件夹。然后我意识到我要删除
我是一名优秀的程序员,十分优秀!