首页 > 解决方案 > 使用 pip 安装后在 Anaconda 导航器上找不到包

问题描述

我按照此处的说明进行操作:在 Anaconda Navigator 上找不到包。接下来做什么?

我在 Anaconda 导航器的环境中单击打开终端,然后在终端中使用“pip3 install lmfit”。但是使用 pip3 安装完 lmfit 包后,我仍然无法在 conda 列表中找到它。我该怎么办?

标签: pythonanaconda

解决方案


问题

在提出这个问题的时候,Conda 的构建pip才刚刚开始包含一个pip3入口点,因此1pip3很可能是指 Python 的非 Conda 版本,这就是安装包的位置。尝试检查which pip3以找出它的去向。

推荐

康达第一

通常,最好使用 Conda 在 Conda 环境中安装软件包,在这种情况下,该软件包可通过 Conda Forge 渠道获得:

conda install -c conda-forge lmfit

M. Newville 的回答相反,这个更喜欢 Conda 包的建议并不是为了让 Conda 开发人员受益,而是帮助用户避免创建不稳定或不可重现的环境的经验法则。有关混合风险的更多信息pip installconda install可以在在 Conda 环境中使用 Pip一文中找到。

然而,并非所有软件包(特别lmfit是 . 事实上,由于第三方可以自由使用不同的构建堆栈,因此混合由 Anaconda 构建的包和来自 Conda Forge 的包存在已知问题。但是,这些问题往往很少见,并且仅限于已编译的代码。此外,将受信任的通道添加到配置中并设置通道优先级启发式地解决了该问题。

至于使用第三方渠道的风险,任意 Anaconda Cloud 用户渠道都是有风险的:一个人应该只从您信任的渠道获取软件包(就像安装其他任何东西一样)。尤其是 Conda Forge 享有盛誉,所有原料均可在 GitHub 上免费获得。此外,许多基于 Conda Forge 的 Python 包构建只是包的 PyPI 构建的包装器。

PyPI 最后

有时无法避免使用 PyPI。当必须求助于从 PyPI 安装时,最好使用pip激活环境中的入口点,而不是pip3,因为只有一些 Conda 构建的pipinclude pip3。例如,

conda activate my_env
pip install lmfit

同样,按照“在 Conda 环境中使用 Pip”中的建议应该conda (install|upgrade|remove)环境中的任何后续调用可能具有未定义行为的假设下进行操作。


仅限 PyPI

为了完整起见,我会指出,与建议一致的使用 Conda 的稳定方法是将 Conda 限制为环境创建和pip用于所有包安装的角色。

对于不想处理诸如查找与 Conda 等效的包名称或搜索非默认频道之类的事情的纯 Python用户而言,这种策略可能是负担最小的。然而,它的适用性似乎仅限于 Python 环境,因为其他库可能仍需要求助于conda install.


[1]: Conda Forge 和 Anaconda在 20.2 版本之后开始一致地包括模块pip3的入口点。pip


推荐阅读