anaconda - 了解一下Anaconda 好一点。Anaconda、pip、Jupyter Notebook、PATH
问题描述
我想我在计算机方面有足够的背景,在这一点上我应该比现在更好地知道它们之间的区别。
据我了解,Anaconda 本质上是 pip 的构建版本(基于 pip 构建?),它处理包和依赖项,而不仅仅是将它们放在您的计算机上。这样可以使您的系统更有条理,因此您没有混合环境。
Jupyter Notebook 似乎与 Anaconda 密切相关,但我很难理解如何。您似乎不需要在 anaconda 提示符下发出命令“jupyter notebook”,那么这里到底发生了什么?
我认为非常有益的事情是举一个例子,说明我在 conda 中下载了一个包,但如果我尝试制作一个通用的 .py 文件,它不会知道这个包(我是不确定这是否属实,但这似乎是拥有环境的目的。不是吗?)
我不认为这是相关的,所以我可以在单独的帖子中问这个问题,但是 PATH 与这些有什么关系?我认为 PATH 有点类似于 import 语句,但从一个非常宏观的角度来看。就像 PATH 中的某些内容比您的系统无需询问就知道它在哪里。这有什么意义还是我离我很远?
如果不了解所有这些事情是如何联系在一起的,我不知道我是如何做到这一点的。我觉得我在这里有很多已经很熟悉的流行语,但我不知道它们是如何组合在一起的。
提前致谢!
解决方案
命令行工具conda
是一个包管理器(apt
在 Linux 上考虑),还可以管理虚拟环境。您可以使用它来下载和安装 Python 包(除其他外)。所以是的,从这个意义上说,它可以与pip
.
Anaconda
是一个元包,即它只是一个包名称和版本号的列表,经过整理以确保所有这些包一起工作。当您安装 Anaconda Python 发行版时,您将获得命令行工具conda
以及所有属于Anaconda
.
为了运行Jupyter
服务器,您需要某些 Python 包。这些包都是Anaconda
元包的一部分。因此,当您Anaconda
安装后,您已经可以访问启动笔记本服务器所需的一切。然而,这既不是conda
也不Anaconda
是必需的。这些Jupyter
包只是可以以多种方式安装的常规 Python 包,conda
就是其中之一。所以不,Jupyter
并Anaconda
没有真正捆绑在一起。
Avirtual environment
是(简单地说)一个封装的 Python 解释器。即,当您在计算机上安装 Python 时,您可以运行python
和(通常)相应的pip
命令。pip
安装关联的软件包python
命令可以比访问。但是,当您要安装同一软件包的多个版本时,这会成为一个问题(一个项目可能需要特定版本,而另一个项目需要不同的版本)。您必须手动卸载并重新安装可能的许多软件包,以确保所有版本都是正确的。为了避免这个问题(以及其他一些问题),您可以创建一个虚拟环境,本质上是一个新的 Python 副本,这会导致您在计算机上安装多个 Python 解释器。当您想使用其中一种 Python 安装时,您必须通过激活环境来指定哪一种。这导致了您的一个问题:当您在一个环境中安装 Python 包时,它只会在那里可用,而不是在任何其他环境中(除非您也在那里安装它)。
这是对虚拟环境的一个很好的介绍:https ://realpython.com/python-virtual-environments-a-primer/
就PATH
变量而言: 1. 不,你离得不远了。非常简单(在这种情况下):激活环境将更改PATH
以告诉您的系统使用哪个 Python 解释器。2. 由于它只与手头的主题相关,我在这里不做更详细的介绍。然而,搜索信息应该很容易PATH
,它甚至有自己的维基百科条目:https://en.wikipedia.org/wiki/PATH_(variable)
推荐阅读
- amazon-web-services - 如何找到可以访问 S3 存储桶的所有资源
- vue.js - 从 Vue 3 中的父组件触发计时器
- amazon-web-services - 如何使用 boto3 删除 MFA 保护存储桶上的 S3 对象/版本?
- html - 如何让这个容器粘在页面底部?
- java - Spring Webclient 有时不读取 204 响应
- parallel-processing - 翘曲散度
- python - 强制 python ssh 解释器使用本地数据
- machine-learning - Caffemodel 和 prototxt
- microsoft-graph-api - 有没有办法从办公室加载项任务窗格中打开日历项目?
- jquery - 尝试使用 Laravel 和 jquery 访问 null 类型值的数组偏移量