Conda系列:
- 翻译: Anaconda 与 miniconda的区别
- Miniconda介绍以及安装
- Conda python运行的包和环境管理 入门
- Conda python管理环境environments 一 从入门到精通
- Conda python管理环境environments 二 从入门到精通
1. Activating an environment激活环境
激活环境对于在环境中制作软件至关重要 好使。激活需要两个主要功能:向 PATH 添加条目 环境并运行环境可能的任何激活脚本 包含。这些激活脚本是软件包可以任意设置的方式 其操作可能需要的环境变量。您还可以使用 config API 设置环境变量 。
激活先于 PATH。这只会生效 当您将环境激活为终端会话的本地环境时, 不是全局性的。
Note注意
安装 Anaconda不建议这样做,因为它安装时, 您可以选择“将 Anaconda 添加到我的 PATH 环境变量”。 Anaconda 附加到 PATH。 当安装程序附加到 PATH 时,它不会调用激活脚本。
在 Windows 上,PATH 由两部分组成,系统用户PATH 和 “Just Me” PATH,我们将其添加到用户对于“所有用户”,我们将其添加到系统您PATH。在后一种情况下,您不需要。我们不建议多用户安装 PATH 和 路径。 。
要激活环境,请执行以下操作:
conda activate myenv
Note注意
myenv替换为环境名称或目录路径。
Conda 将路径名myenv预置到系统命令中。
如果尚未激活环境,您可能会收到一条警告消息:
Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation.
如果收到此警告,则需要激活环境。去做 因此,在 Windows 上,在终端窗口中运行:c:\Anaconda3\Scripts\activate base
。
Windows 对正确激活极为敏感。这是因为 Windows 库加载程序不支持库的概念 以及知道在何处搜索其依赖项的可执行文件(RPATH) 。
相反,Windows 依赖于动态链接库搜索顺序.
如果环境未处于活动状态,则不会找到库,也不会在那里 会有很多错误。HTTP 或 SSL 错误是 子环境中的 Python 找不到必需的 OpenSSL 库。
Conda 本身包含一些特殊的解决方法来添加其必要的 PATH 条目。这使得它可以在不激活或 任何子环境都处于活动状态。通常,在 未首先激活该环境的环境可能无法正常工作。 为了能够在激活的环境中运行可执行文件,您可能需要 对命令conda run
感兴趣。
如果您在使用 PATH 时遇到错误,请查看我们的故障排除。
2. Conda 初始化
早期版本的 conda 引入了用于激活的脚本 跨操作系统的行为统一。Conda 4.4允许 conda activate myenv
. Conda 4.6 添加了广泛的初始化 支持,以便 Conda 更快、更少地工作 种类繁多的 shell(bash、zsh、csh、fish、xonsh 等)。 现在,这些 shell 可以使用该命令conda activate
。 消除修改 PATH 的需要使 conda 对 系统上的其他软件。有关更多信息,请阅读conda init --help
的输出。
一个设置可能对您有用conda init
:
auto_activate_base: bool
此设置控制 conda 是否激活您的base 环境。您将拥有conda
命令无论哪种方式都可用,但不激活环境, 环境中的其他程序在以下情况下都不可用 环境是用conda activate base
激活的。人 有时选择此设置来加快其shell所需的时间 启动或阻止 Conda 安装的软件自动启动 隐藏他们的其他软件。
3. Nested activation嵌套激活
默认情况下,conda activate
将停用当前环境 在激活新环境之前,并在以下情况下重新激活它 停用新环境。有时你可能想离开 当前环境 PATH 条目就位,以便您可以继续 从第一个环境轻松访问命令行程序。 这在常见的命令行实用程序中最常见 安装在基本环境中。保留当前环境 在 PATH 中,您可以使用以下命令激活新环境:
conda activate --stack myenv
如果您希望在从最外层环境开始时始终堆叠, 这通常是基本环境,您可以设置 auto_stack
配置选项:
conda config --set auto_stack 1
您可以指定一个更大的数字来进行更深层次的自动堆叠, 但不建议这样做,因为更有可能进行更深层次的堆叠 导致混淆。
4. Deactivating an environment 停用环境
若要停用环境,请键入:
conda deactivate
Conda会从您的系统命令中删除当前活动环境的路径名。
Note注意
若要简单地返回到基本环境,最好在未指定环境的情况下调用conda activate
,而不是尝试停用。如果 从基础环境运行conda deactivate
,可能会丢失 完全能够运行 conda。别担心,这是这个 shell 的本地 - 你可以 开始一个新的。但是,如果环境是使用--stack
(或被自动堆叠)那么最好使用conda deactivate
.
5. 当前环境
使用终端执行以下步骤。
默认情况下,活动环境—您当前所在的环境 using—显示在括号 () 或括号 [] 中 命令提示符的开头:
(myenv) $
如果未看到此内容,请运行:
conda info --envs
在显示的环境列表中,您的当前环境 以星号 (*) 突出显示。
默认情况下,命令提示符设置为显示 活动环境。要禁用此选项,请执行以下操作:
conda config --set changeps1 false
要重新启用此选项,请执行以下操作:
conda config --set changeps1 true
6. 查看环境列表
若要查看所有环境的列表,请在终端窗口中运行:
conda env list
或者
conda info --envs
将显示类似于以下内容的列表:
conda environments:
myenv /home/username/miniconda/envs/myenv
snowflakes /home/username/miniconda/envs/snowflakes
bunnies /home/username/miniconda/envs/bunnies
如果此命令由管理员运行,则所有环境的列表 将显示属于所有用户。
7. 查看环境中的软件包列表 a list of the packages
要查看特定环境中安装的所有软件包的列表,请执行以下操作:
- 如果环境未激活,请在终端窗口中运行:
conda list -n myenv
- 如果环境已激活,请在终端窗口中运行:
conda list
- 要查看环境中是否安装了特定软件包,请在 终端窗口,运行:
conda list -n myenv scipy
8. 在环境中使用 pip
若要在环境中使用 pip,请在终端窗口中运行:
conda install -n myenv pip
conda activate myenv
pip <pip_subcommand>
同时使用 pip 和 conda 时可能会出现问题。当组合 conda 和 pip 时, 最好使用隔离的 conda 环境。只有在 conda 被用于 如果使用 pip 安装任何剩余的包,请安装尽可能多的包 软件。如果需要对环境进行修改,最好创建一个 新环境,而不是在 pip 之后运行 conda。在适当的情况下,conda 和 pip 要求应存储在文本文件中。
我们建议您:
8.1 仅在 conda 之后使用 pip
- 使用 conda 安装尽可能多的要求,然后使用 pip。
- Pip 应该运行
--upgrade-strategy only-if-needed
(默认值)。 - 不要将 pip 与参数
--user
一起使用,避免所有用户安装。
8.2 使用 conda 环境进行隔离
- 创建一个 conda 环境来隔离 pip 所做的任何更改。
- 由于硬链接,环境占用的空间很小。
- 应注意避免在根环境中运行 pip。
8.3 如果需要更改,请重新创建环境
- 一旦使用了 pip,conda 将不知道这些更改。
- 若要安装其他 conda 包,最好重新创建 环境。
8.4 将 conda 和 pip 要求存储在文本文件中
- Package requirements 可以通过参数
--file
传递给 conda。 - Pip 接受带有
-r
或 的--requirements
Python 包列表。 - Conda env 将基于具有 conda 和 pip 要求。
参考
https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html