防止 conda 自动降级 python 包
Prevent conda from automatically downgrading python package
我有 和 pandas-datareader
软件包 v0.81。为了解决我的问题,我不得不通过 运行ning 以下命令将软件包升级到更新的版本 0.9;
conda install -c anaconda pandas-datareader
不幸的是,当我稍后尝试使用命令 conda update --all
升级 conda 软件包时,pandas-datareader
被降级回 v0.81。 v0.81 来自 conda-forge 频道。我要的是anaconda频道的v0.9.
下面是我想要的。
https://anaconda.org/anaconda/pandas-datareader
下面不是我想要的
https://anaconda.org/conda-forge/pandas-datareader
当我 运行 conda update --all
时,如何强制 conda 始终将 pandas-datareader 升级到 anaconda 频道的最新版本?
我在 Windows 10 上使用 python anaconda 2020_07 版本。
指定最低版本
Conda 足以解析最低版本,并且它会记住它们已被指定。如果你更喜欢 0.9 作为最小值,那么你只需要用
这么说
conda install 'pandas-datareader>=0.9'
或
conda install pandas-datareader[version='>=0.9']
一旦你运行这个,它将被添加到你的明确规范,1 并且应该至少锁定 pandas-datareader
的那个版本,包括随后的 conda update --all
运行s.2 对 Conda 的 MatchSpec 系统有更全面的描述,涵盖了可以指定的范围。
频道规格
虽然这不是 OP 实际想要的,但可能值得详细说明为什么会发生频道切换以及如何显式指定频道。
--channel|-c
标志仅在与它一起使用的命令期间添加(并确定优先级)通道。它不会告诉 Conda 特定的包应该来自该渠道。因此,由于 OP 在其 global/user 配置中可能 conda-forge 优先于 defaults(参见 conda config --show channels
),运行ning conda update --all
将简单地切换回最近上传的版本。
要明确指出包应来自某个频道,应改为使用
conda install anaconda::pandas-datareader
然后这会将 anaconda::pandas-datareader
添加到显式规范中,并且应该锁定这样一个事实,即人们期望 pandas-datareader
来自 anaconda 频道.
包固定
否则,package pinning 可能是另一种选择。
[1] 可以用 conda env export --from-history
.
检查明确的规范
[2] 请注意,某些标志可能会在没有警告的情况下覆盖显式规范,例如 --update-deps
.
我有 pandas-datareader
软件包 v0.81。为了解决我的问题,我不得不通过 运行ning 以下命令将软件包升级到更新的版本 0.9;
conda install -c anaconda pandas-datareader
不幸的是,当我稍后尝试使用命令 conda update --all
升级 conda 软件包时,pandas-datareader
被降级回 v0.81。 v0.81 来自 conda-forge 频道。我要的是anaconda频道的v0.9.
下面是我想要的。
https://anaconda.org/anaconda/pandas-datareader
下面不是我想要的
https://anaconda.org/conda-forge/pandas-datareader
当我 运行 conda update --all
时,如何强制 conda 始终将 pandas-datareader 升级到 anaconda 频道的最新版本?
我在 Windows 10 上使用 python anaconda 2020_07 版本。
指定最低版本
Conda 足以解析最低版本,并且它会记住它们已被指定。如果你更喜欢 0.9 作为最小值,那么你只需要用
这么说conda install 'pandas-datareader>=0.9'
或
conda install pandas-datareader[version='>=0.9']
一旦你运行这个,它将被添加到你的明确规范,1 并且应该至少锁定 pandas-datareader
的那个版本,包括随后的 conda update --all
运行s.2
频道规格
虽然这不是 OP 实际想要的,但可能值得详细说明为什么会发生频道切换以及如何显式指定频道。
--channel|-c
标志仅在与它一起使用的命令期间添加(并确定优先级)通道。它不会告诉 Conda 特定的包应该来自该渠道。因此,由于 OP 在其 global/user 配置中可能 conda-forge 优先于 defaults(参见 conda config --show channels
),运行ning conda update --all
将简单地切换回最近上传的版本。
要明确指出包应来自某个频道,应改为使用
conda install anaconda::pandas-datareader
然后这会将 anaconda::pandas-datareader
添加到显式规范中,并且应该锁定这样一个事实,即人们期望 pandas-datareader
来自 anaconda 频道.
包固定
否则,package pinning 可能是另一种选择。
[1] 可以用 conda env export --from-history
.
[2] 请注意,某些标志可能会在没有警告的情况下覆盖显式规范,例如 --update-deps
.