python - 使用 pip 安装后在 Anaconda 导航器上找不到包
问题描述
我按照此处的说明进行操作:在 Anaconda Navigator 上找不到包。接下来做什么?
我在 Anaconda 导航器的环境中单击打开终端,然后在终端中使用“pip3 install lmfit”。但是使用 pip3 安装完 lmfit 包后,我仍然无法在 conda 列表中找到它。我该怎么办?
解决方案
问题
在提出这个问题的时候,Conda 的构建pip
才刚刚开始包含一个pip3
入口点,因此1pip3
很可能是指 Python 的非 Conda 版本,这就是安装包的位置。尝试检查which pip3
以找出它的去向。
推荐
康达第一
通常,最好使用 Conda 在 Conda 环境中安装软件包,在这种情况下,该软件包可通过 Conda Forge 渠道获得:
conda install -c conda-forge lmfit
与M. Newville 的回答相反,这个更喜欢 Conda 包的建议并不是为了让 Conda 开发人员受益,而是帮助用户避免创建不稳定或不可重现的环境的经验法则。有关混合风险的更多信息pip install
,conda install
可以在“在 Conda 环境中使用 Pip ”一文中找到。
然而,并非所有软件包(特别lmfit
是 . 事实上,由于第三方可以自由使用不同的构建堆栈,因此混合由 Anaconda 构建的包和来自 Conda Forge 的包存在已知问题。但是,这些问题往往很少见,并且仅限于已编译的代码。此外,将受信任的通道添加到配置中并设置通道优先级启发式地解决了该问题。
至于使用第三方渠道的风险,任意 Anaconda Cloud 用户渠道都是有风险的:一个人应该只从您信任的渠道获取软件包(就像安装其他任何东西一样)。尤其是 Conda Forge 享有盛誉,所有原料均可在 GitHub 上免费获得。此外,许多基于 Conda Forge 的 Python 包构建只是包的 PyPI 构建的包装器。
PyPI 最后
有时无法避免使用 PyPI。当必须求助于从 PyPI 安装时,最好使用pip
激活环境中的入口点,而不是pip3
,因为只有一些 Conda 构建的pip
include 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
推荐阅读
- weblogic12c - 在 JDeveloper 中创建应用程序服务器连接时出错
- javascript - 如何在 Javascript 中使用 AES CBC 零填充进行加密并使用 Java 进行解密
- laravel - Laravel Eager-loading 仅在调用属性时有效
- powerbi - 如何在发布到 Web 时从报表中删除“Microsoft Power BI”页脚
- python-3.x - 如何在 PyQt5 的 QFileDialog 中的 QListView 上 setFocus()?
- c# - 它在邮递员网络中工作,但在代码中不起作用
- java - 如何在方法中打印出结果?
- c# - 如何在 VS2017 的 T4 模板中使用 Microsoft.Data.Sqlite
- php - 双 foreach 与 html 集体和采摘
- javascript - 在 Node.js 中嵌套承诺的情况下承诺解决/拒绝