conda-forge安装老版本时如何升级

How to upgrade when conda-forge installs an old version

pandas-profiling(看起来)是一个改进了 pd.DataFrame.describe() 方法的令人愉快的小包。我决定使用 conda 安装它,并且根据 documentation,我在命令行输入 conda install -c conda-forge pandas-profiling

这就是它变得不稳定的地方。 pandas-profiling 的当前版本是 2.8.0。这是命令行返回的文本:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pandas-profiling-1.4.1     |                0          39 KB  conda-forge
    ------------------------------------------------------------
                                           Total:          39 KB

The following NEW packages will be INSTALLED:

  pandas-profiling   conda-forge/osx-64::pandas-profiling-1.4.1-0

...版本 1.4.1?这似乎不对。我可能会错过一些重要的功能。我想升级,但是,作为新手数据科学家,我作为包管理器对 conda 不够熟悉,无法弄清楚为什么 conda-forge 上的最新版本是 1.4。 1 或如何通过 pipconda 升级(为了保持一致性,最好通过 conda)。

然后我用 conda search pandas-profiling --info 调查了构建,它揭示了以下关于似乎安装的 1.4.1_0 构建的信息:

pandas-profiling 1.4.1 0
------------------------
file name   : pandas-profiling-1.4.1-0.tar.bz2
name        : pandas-profiling
version     : 1.4.1
build       : 0
build number: 0
size        : 39 KB
license     : MIT
subdir      : osx-64
url         : https://conda.anaconda.org/conda-forge/osx-64/pandas-profiling-1.4.1-0.tar.bz2
md5         : 9a23538636bc7bcc05c6e7a90bca3c33
constraints :
  - pypy <0a0
dependencies:
  - jinja2 >=2.8
  - matplotlib >=1.4
  - pandas >=0.19
  - python >=2.7
  - six >=1.9

这是为 Python 2.7 构建的,但我的 conda 正在管理 3.7.6 版!

有没有人知道这里发生了什么以及我如何升级到最新版本?

在这种情况下,您当前环境的依赖项与新包 (pandas-profiling) 的依赖项之间可能存在一些不兼容,至少根据最新版本的包.

但显然 conda 能够找到具有更宽松要求的旧版本包(可能是由于旧包元数据中的错误),因此它决定为您提供该版本。

要指定您要查找的确切版本,请尝试以下操作之一:

conda install -c conda-forge pandas-profiling=2.8
conda install -c conda-forge pandas-profiling=2.8.0

如果失败,试试这个,看看它带来了什么:

conda create -n testenv -c conda-forge pandas-profiling=2.8.0 python=3.7

尝试将其依赖项一次一个地安装到您的首选环境中(指定版本),看看哪个安装失败。这可能会提供有关不兼容性来源的线索。

使用 conda search --info(就像您所做的那样)也是弄清楚依赖项发生了什么的好方法。但是如果您发现包裹有任何问题,或者您需要其他详细信息w.r.t。它是如何构建的,可以找到 conda-forge python-profiling 包的配方 here.

我解决这个问题的方法是确保在尝试安装之前更新了 conda pandas-profiling。而且是在一个新的环境中。

创建新环境:

conda create -n new_env

在其中安装conda(默认应该是最新版本,但如果有需要请验证更新):

conda activate new_env

conda install conda

安装pandas-profiling:

conda install -c conda-forge pandas-profiling

up-to-date conda 是关键。另外,当环境中已经安装了pandas-profiling(过时版本)时,卸载重装也不行。