conda 环境中 conda 和 pip 安装的区别

2024-05-06

我似乎经常问自己这个问题,最近改用 conda 环境(Anaconda),但我最终用谷歌搜索并没有走得太远。

我现在在自己的 conda 环境中运行所有项目,因为我喜欢将所有内容保持独立,并尽可能减少对其他程序的依赖。比如最近的一个环境:

conda create -n RL numpy tensorflow-gpu

然后我激活环境,并意识到“哦 - 我忘了安装gym”。在这种情况下,这仅在 PIP 包管理器中可用,因此我只需键入pip install gym。但在其他情况下,如果包存在于 conda 和 pip 中,安装它的最佳方法是什么?

conda install package pip install package

或者换句话说——有什么区别?

为了提供完整的图片,我在 Ubuntu 16.04 中运行所有内容,并根据项目在 python 2 和 3 之间切换。所以我的一些 conda 环境是 python 2,一些是 python 3。我发现有时pip3 installpython 3 需要,但并非总是如此 - 这是为什么?

其次,我的路径链接到 Anaconda3 目录中的 python 设置。

我目前的想法是,如果我通过安装conda,它直接安装到我的环境中,但是通过pip它安装到我的 anaconda3 站点包中,使其可用于我的 Anaconda3 目录下的所有 conda 环境。如果是这种情况,这意味着如果我pip install gym在一个 conda 环境中,它也应该在所有其他环境中可用 - 但据我所知,这不是环境的预期行为。

请随时纠正我的假设并让我明白一些道理!


根据我对 Conda 的理解,它为您管理所有依赖项。例如,如果您有一个包(如 pandas)需要另一个包(如 numpy),它将下载这两个包(在警告您之后)。

conda 变得方便的地方是,有时一个特定的包需要另一个包的特定版本(例如 4.3 或更高版本),并且它们可能会在包之间发生冲突。要求和冲突定义了一个可以通过 SAT 求解器解决的数学问题。

您可以在这里找到相关信息和链接:https://www.continuum.io/blog/developer/new-advances-conda-0 https://www.continuum.io/blog/developer/new-advances-conda-0

因此,每次安装新软件包时,它都会升级(如果冲突,有时会降级)其他软件包,以确保每个软件包的功能。就我个人而言,我会选择conda并使用pip仅当包不受管理时conda

如果您对 conda 感兴趣,另一个链接:https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/ https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/

About pip3,这是同时安装 Python 2 和 Python 3 时使用的命名,以避免命令冲突。在python 3环境中,命令pip将相当于pip3.

对于以下行为pip,我可以确认安装仅在活动环境中完成,并且不适用于其他环境

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

conda 环境中 conda 和 pip 安装的区别 的相关文章

随机推荐

  • 防止在 Windows 资源管理器中打开重复的文件夹或子文件夹

    我正在使用下面的代码打开特定文件夹 我需要在打开之前检查一下 如果是的话文件夹或子文件夹是否已在 Windows 资源管理器中打开 以防止重复 感谢任何有用的评论和答案 Sub Prevent opening duplicate folde
  • ioc 和依赖注入之间的区别

    ioc 和依赖注入之间的区别 解释一下 spring 中的依赖注入 JSF 依赖注入和 spring 依赖注入有什么区别 IoC 的意思是控制反转 让我们看一些 强耦合代码 MyComponent 依赖于 Logger public cla
  • 需要对 mongodb 中的数组对象值求和

    如果该值存在 我正在尝试计算总价值 但查询并不能 100 工作 那么有人可以帮我解决这个问题吗 这是我的示例文档 我附上了两份文件 请提供这些文件并找出最佳解决方案 文件 1 id 1 message count 4 messages da
  • MPMoviePlayerController 添加自定义播放按钮

    目前我正在开发一个显示视频的 iPhone 应用程序 我使用 MPMoviePlayerController 从本地文件夹加载视频 我们可以定制标准媒体播放器吗 我想要做的是隐藏所有标准元素 播放 前进 倒带 完成 并仅使用带有自定义图像的
  • 包 javax.comm 不存在[重复]

    这个问题在这里已经有答案了 可能的重复 如何获取javax comm API https stackoverflow com questions 7562565 how to get javax comm api 我已经下载并安装了jdk1
  • 无法安装组件:模板或渲染函数未定义。组件导入失败

    我正在尝试复制 vue 教程示例 在这里找到 https v3 vuejs org guide component basics html passing data to child components with props https
  • Sails.js 中的子域路由

    我试图找出一种在 Sails js 中以完全动态的方式路由子域的方法 默认路由似乎不允许这样做 例如 如果用户访问 yourname example com 则路由会将其读取为 example com users theirname 并且子
  • 应用程序注册失败,因为文件位于网络共享上。注册包之前将文件复制到本地计算机

    我使用这些示例来构建 Windows 8 应用程序 http code msdn microsoft com windowsapps Getting started with C and 41e15af5 http code msdn mi
  • 在 HTML 中设置 LI 标记的值

    我有一个有序列表 我需要为其设置 值 就像是 ol li apple li li pear li li car li ol 这样它们就会显示我分配的数字 34 apple 45 pear 55 car 有没有办法告诉 LI 应显示什么数字
  • 无法使用服务帐户查询 Google Search Console API

    我需要使用服务帐户从 Google Search Console 网站管理员工具 检索一些数据 到目前为止我已经能够检索到access token对于我需要附加到请求的 url 的服务帐户 问题是我找不到办法这样做 这是我正在使用的代码 f
  • C# 和泛型 - 为什么调用基类中的方法而不是派生类中的新方法?

    如果泛型类型参数 调用类或调用方法的 受以下约束where T Base不会调用 T Derived 中的新方法 而是调用 Base 中的方法 为什么类型 T 在方法调用中被忽略 即使它应该在运行时之前已知 Update 但是 当约束使用像
  • 自定义字体,eot,不起作用

    我无法让我的自定义字体在 IE7 和 IE8 中工作 http i creative dk iJob http i creative dk iJob 它在 IE9 Firefox 和 Chrome 中运行良好 对于 Firefox 和 Ch
  • 每当调用 malloc/free 时输出到 stderr

    使用 Linux GCC C 每当调用 malloc free new delete 时 我想向 stderr 记录一些内容 我试图了解库的内存分配 因此我想在运行单元测试时生成此输出 我使用 valgrind 进行内存泄漏检测 但我找不到
  • 我的 rtk 切片的初始状态未按预期保存在存储中?

    目前正在学习如何将 RTK 与 typescript 结合使用 我有 2 个切片 其中一个是我使用 RTK 查询制作的以获取数据 称为apiSlice ts 另一个使用 createSlice 来处理我的待办事项应用程序的同步状态更改 称为
  • 在 MATLAB 中将数据拟合到 B 样条

    我正在尝试估计矩阵形式的时间序列数据中的缺失值 列代表时间点 即现在 我想将矩阵的每一行拟合到 B 样条曲线 并用它来估计缺失值 我可以使用 MATLAB 将数据拟合到普通样条曲线 但我完全陷入尝试找出如何拟合数据以创建 B 样条曲线的困境
  • Android:如何获取设备的真实屏幕尺寸?

    我尝试了不同的方法来获取设备的屏幕尺寸 但它总是返回错误的尺寸 791x480代替854x480 可能是导航栏的原因 我的设备当前运行的是 JellyBean 4 1 1 I tried Display display getWindowM
  • OSGI - 处理捆绑包所需的第 3 方 JAR

    我刚刚开始 OSGI 开发 正在努力了解如何最好地处理依赖的 JAR 也就是说 如果我要创建一个捆绑包 我很可能需要使用一些第 3 方 JAR 当我创建要部署到 OSGI 的捆绑包 JAR 时 显然不包含这些第 3 方 JAR 因此该捆绑包
  • event.getSource() 返回 null android 中的可访问性

    我尝试使用 DashLane 等辅助服务或其他一些使用辅助服务的应用程序来填充 EditText 字段 我正在使用聚焦事件视图 当 EditText 获得焦点时 事件开始但是getSource 返回空值 Code Accessibility
  • 奇怪的 JavaCore IType 缓存问题

    我正在开发一个插件 它接受工作区中实现某些接口 IDomain 的所有枚举 解析代码 使用 AST 对枚举进行一些修改 并将其标记为使用注释 IDomainInfo 进行处理 例如 它需要这样的东西 public enum SomeEnum
  • conda 环境中 conda 和 pip 安装的区别

    我似乎经常问自己这个问题 最近改用 conda 环境 Anaconda 但我最终用谷歌搜索并没有走得太远 我现在在自己的 conda 环境中运行所有项目 因为我喜欢将所有内容保持独立 并尽可能减少对其他程序的依赖 比如最近的一个环境 con