使用pip安装后在Anaconda导航器上找不到软件包

时间:2020-06-18 01:53:42

标签: python anaconda

我按照此处的说明进行操作:Can't find package on Anaconda Navigator. What to do next?

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

2 个答案:

答案 0 :(得分:-1)

问题

Conda不会将pip别名为pip3(或pip2),因此pip3必须引用的是非Conda版本的Python,这就是程序包所在的位置已安装。尝试检查which pip3找出它去了哪里。

推荐

Conda First

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

conda install -c conda-forge lmfit

M. Newville's answer相反,此推荐使用Conda软件包的建议并不是要使Conda开发人员受益,而是要根据经验法则来帮助用户避免创建不稳定或不可复制的环境。有关混合pip installconda install的风险的更多信息,请参见帖子"Using Pip in a Conda Environment"

尽管如此,在默认存储库中未找到所有软件包(尤其是lmfit)的注释是一个好主意,因为这会导致安装复杂,因为需要诉诸第三方渠道。实际上,由于第三方可以自由使用不同的构建堆栈,因此存在由Anaconda和Conda Forge生成的混合包存在已知问题。但是,这些问题很少发生,并且仅限于编译后的代码。此外,向配置中添加可信通道并设置通道优先级可以通过启发式方法解决此问题。

至于使用第三方渠道的风险,任意的Anaconda Cloud用户渠道都是有风险的:一个人只能从您信任的渠道中获取软件包(就像安装其他任何东西一样)。特别是Conda Forge声誉卓著,所有原料均为freely available on GitHub。而且,许多在Conda Forge上构建的Python软件包只是包装PyPI的包装。

PyPI最后

有时无法避免使用PyPI。当必须使用PyPI安装时,切勿使用pip3(或pip2),而应激活环境,然后使用pip,例如,

conda activate my_env
pip install lmfit

同样,按照"Using Pip in a Conda Environment"中的建议,应该假设环境中对conda (install|upgrade|remove)的任何后续调用都可能具有未定义的行为。


仅限PyPI

出于完整性考虑,我将注意到一种与建议相一致的使用Conda的稳定方法是将Conda限制为创建环境的角色,并在所有软件包安装中使用pip

此策略可能是仅Python 用户的负担最少,该用户不想处理诸如查找与Conda等效的程序包名称或搜索非默认通道之类的事情。但是,它的适用性似乎仅限于仅Python的环境,因为其他库可能仍需要求助于conda install

答案 1 :(得分:-1)

安装具有正确版本lmfit的纯Python程序包,例如pip install lmfit即可。

建议使用

Conda first来简化conda维护者和打包者的生活,而不是用户的生活。 FWIW,我维护两种软件包, 并且没有理由推荐conda install lmfit而不是pip install lmfit

实际上,lmfit不在默认的anaconda存储库中,因此安装需要到第三方conda-forge这样的conda通道。这增加了您的conda环境的复杂性和风险。

真的,pip install lmfit应该没问题。