文章目录
- 优雅的使用Conda管理python环境
-
- [1. conda info -e 和conda env list区别](#1. conda info -e 和conda env list区别)
- [2.conda创建环境 创建的新环境在哪个文件夹下](#2.conda创建环境 创建的新环境在哪个文件夹下)
- [3. 自定义路径](#3. 自定义路径)
- [4. anaconda 新建环境 包是来自哪里](#4. anaconda 新建环境 包是来自哪里)
-
- [4.1. 默认 Anaconda 仓库](#4.1. 默认 Anaconda 仓库)
- [4.2. Conda-Forge](#4.2. Conda-Forge)
- [4.3. 镜像源](#4.3. 镜像源)
- [4.4. 自定义频道](#4.4. 自定义频道)
- [4.5. 总结](#4.5. 总结)
- [5. conda config --add channels conda-forge 这是什么意思](#5. conda config --add channels conda-forge 这是什么意思)
- [6. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes 什么意思](#6. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes 什么意思)
- [7. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 这是全局的吗?](#7. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 这是全局的吗?)
- [8. 我不想设置清华镜像 我只想在安装三方包的时候 输入镜像的地址](#8. 我不想设置清华镜像 我只想在安装三方包的时候 输入镜像的地址)
- [9. conda如何安装别人的conda项目](#9. conda如何安装别人的conda项目)
- [10. pycharm中使用anacoda](#10. pycharm中使用anacoda)
- 为什么anaconda环境中,还需要用[pip安装](https://so.csdn.net/so/search?q=pip安装&spm=1001.2101.3001.7020)包,此情况下用pip需要哪些注意项
- [11. 一打开终端就默认进入conda的base环境,取消方法](#11. 一打开终端就默认进入conda的base环境,取消方法)
优雅的使用Conda管理python环境
https://ckfanzhe.github.io/About_conda/
1. conda info -e 和conda env list区别
conda info -e
和 conda env list
都用于查看当前的 Conda 环境列表,但它们有一些小的差别:
-
conda info -e
:-e
是--envs
的缩写。- 这个命令用于列出所有已经创建的 Conda 环境。
- 它显示的环境列表仅包含环境的名称及其路径。
- 是一种较老的用法。
示例输出:
bashconda info -e # base * /path/to/miniconda3 my_env /path/to/miniconda3/envs/my_env
-
conda env list
:- 这是一个更现代的命令,用于列出所有 Conda 环境。
- 功能与
conda info -e
类似,也列出环境的名称和路径。 - 这是更推荐的方式,随着 Conda 的更新,
conda env list
逐渐成为标准用法。
示例输出:
bashconda env list # base * /path/to/miniconda3 my_env /path/to/miniconda3/envs/my_env
总结:两者功能几乎相同,但 conda env list
是更现代且推荐的用法,而 conda info -e
是一种老的命令方式。
2.conda创建环境 创建的新环境在哪个文件夹下
Conda 创建的新环境默认位于 Conda 安装目录的 envs
文件夹下。
具体路径如下:
- 如果你安装了 Miniconda 或 Anaconda ,默认环境会被创建在
miniconda3/envs/
或anaconda3/envs/
目录下。 - 例如,
base
环境的默认路径是miniconda3/
,而新环境会被创建在miniconda3/envs/<环境名称>/
中。
你可以通过以下命令查看 Conda 安装路径:
bash
conda info --base
3. 自定义路径
如果你想将环境创建在指定的路径,可以使用 -p
参数来指定路径:
bash
conda create -p /custom/path/my_env
这样,环境会被创建在 /custom/path/my_env
目录下。
4. anaconda 新建环境 包是来自哪里
当你在 Anaconda 中创建一个新的环境时,环境中的包通常来自以下几种来源:
4.1. 默认 Anaconda 仓库
-
新环境的包默认来自 Anaconda 官方的包仓库,位于
https://repo.anaconda.com/pkgs/
。 -
Conda 通过
defaults
频道(channel)从这个仓库中下载和安装包,这也是 Conda 默认的包来源。 -
你可以通过以下命令查看默认的仓库来源:
bashconda config --show channels
4.2. Conda-Forge
-
另一个非常流行的包仓库是 Conda-Forge,这是一个社区驱动的 Conda 包仓库,包含大量用户贡献的包。
-
如果你想从 Conda-Forge 安装包,可以通过以下命令将它添加为包来源:
bashconda config --add channels conda-forge
4.3. 镜像源
-
在国内,由于网络限制,很多用户会配置清华、阿里云等镜像源,以加速包的下载。
-
如果你使用国内镜像源,包会从这些镜像下载,而不是直接从 Anaconda 官方仓库下载。
-
配置国内镜像源的例子(以清华镜像为例):
bashconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes # 这条命令设置 Conda 在输出软件包信息时显示源的 URL。启用此选项后,安装或更新软件包时,你将看到每个软件包来自哪个源,这对于调试和确认使用的源很有帮助。
4.4. 自定义频道
- 你还可以指定其他的自定义频道(例如企业内部的私有包仓库),从这些自定义渠道获取包。
创建频道:可以在 GitHub、Bitbucket 等平台上托管你的包,或者使用你自己的服务器。
上传包:将 Conda 包上传到你的自定义频道中。
配置 Conda 使用自定义频道:
- 使用命令
conda config --add channels <你的频道 URL>
来添加你的频道。 - 可以使用
conda config --set channel_priority strict
设置优先级。
安装包 :使用 conda install <包名>
安装时,Conda 会优先从你自定义的频道中寻找软件包
4.5. 总结
- 默认来源 是 Anaconda 官方仓库的
defaults
频道。 - 你可以通过添加
conda-forge
或其他镜像源,改变包的来源,甚至配置私有包仓库作为额外来源。
你可以随时通过 conda config --show channels
查看当前配置的包来源。
5. conda config --add channels conda-forge 这是什么意思
命令 conda config --add channels conda-forge
的作用是将 Conda-Forge 频道(channel)添加到 Conda 包管理器的频道列表中。这样,当你使用 conda install
安装包或者创建新环境时,Conda 可以从 Conda-Forge 仓库中寻找和下载软件包。
详细解释:
conda config
:- 用于配置 Conda 的各种设置,像是频道、环境路径等。
--add channels
:- 表示你要添加一个新的包来源(即频道),从该频道中可以下载和安装包。
conda-forge
:- Conda-Forge 是一个社区维护的 Conda 仓库,它包含大量由社区贡献的 Conda 包。很多包在这个仓库更新速度较快,并且一些特殊或较新的包往往只有在 Conda-Forge 上可以找到。
效果:
执行 conda config --add channels conda-forge
后,Conda 会在默认频道(如 defaults
)之外,先去 Conda-Forge 中寻找包。如果你安装的包在默认频道找不到,Conda 将会从 Conda-Forge 仓库下载和安装该包。
使用场景:
- 当某些软件包无法在默认频道
defaults
中找到,或希望从 Conda-Forge 获得最新版本时,可以使用此命令。 - Conda-Forge 是开源的,包更新更频繁,因此它也是很多开发者首选的包来源。
检查添加的频道:
你可以通过以下命令查看当前 Conda 配置的频道列表:
bash
conda config --show channels
输出可能会是这样:
bash
- conda-forge
- defaults
这意味着 Conda 将优先从 conda-forge
安装包,其次才会使用默认的 defaults
频道。
6. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes 什么意思
这两个命令的作用是:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
:- 添加清华镜像源 作为 Conda 的包下载渠道。
- Conda 默认从官方的
repo.anaconda.com
下载包,但由于网络问题,国内用户可能会遇到下载缓慢的情况。使用清华大学提供的 Anaconda 镜像源 能大幅加速下载速度。 - 该命令将清华镜像的免费包来源 (
pkgs/free
) 添加到 Conda 的频道列表中,这样当你创建环境或安装包时,Conda 可以直接从这个镜像下载包。
conda config --set show_channel_urls yes
:- 设置 Conda 在安装包时显示每个包的 来源 URL。
- 启用这个设置后,当你运行
conda install
安装包时,Conda 会显示每个包从哪个具体的频道下载(包括具体的 URL),帮助你更清楚了解包的来源信息。
详细解释:
1. 添加清华镜像源
-
默认情况下 ,Conda 从官方的 Anaconda 仓库(
repo.anaconda.com
)下载包,但国内网络不稳定,下载可能会比较慢。 -
清华大学的 TUNA 镜像站提供了 Anaconda 的镜像,通过这个命令,Conda 会优先从这个镜像中寻找和下载包,提升下载速度。
命令:
bashconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
会将清华的
free
频道添加到你的频道列表里。
2. 显示包的来源 URL
-
show_channel_urls
是 Conda 的一个配置选项,控制是否显示包的来源 URL。 -
设置为
yes
后,Conda 在安装或更新包时,会显示每个包是从哪个频道下载的,帮助你确认包的来源是否是你期望的频道。命令:
bashconda config --set show_channel_urls yes
这样,当你运行
conda install
时,输出可能会显示类似这样的信息:bashnumpy: 1.20.3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ pandas: 1.2.4 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
它会告诉你包的确切来源。
总结:
- 第一条命令 将清华大学的 Anaconda 镜像源添加为 Conda 包的下载渠道,帮助提升下载速度。
- 第二条命令 设置 Conda 显示包的下载 URL,帮助你确认包从哪个频道下载,有助于调试和透明化安装过程。
7. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 这是全局的吗?
- 是的,
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
是全局配置。这意味着添加的频道将适用于所有使用该 Conda 安装的环境和项目。如果你只想在特定环境中使用频道,可以在激活该环境后使用相同的命令,但会在该环境的配置中生效。
8. 我不想设置清华镜像 我只想在安装三方包的时候 输入镜像的地址
如果你不想全局或局部配置清华镜像,只想在安装第三方包 时临时指定镜像地址,可以在运行 conda install
命令时通过 -c
参数指定镜像地址。
方法:
使用以下命令,在安装某个包时临时指定镜像地址:
bash
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ <package_name>
示例:
比如你想从清华镜像安装 numpy
包,可以这样运行:
bash
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ numpy
特点:
- 临时生效:该镜像地址只在这个安装命令中生效,不会影响全局配置。安装完成后,Conda 仍会使用默认的官方源或其他配置的源。
- 适用于一次性操作:只在你明确希望从特定镜像下载时才使用,不会永久更改 Conda 配置。
适用场景:
- 当你只需要临时使用某个镜像源时,例如网络不稳定,临时切换到国内镜像加速包下载。
- 不希望修改 Conda 的全局配置,避免对其他环境或将来的操作产生影响。
总结:通过 -c
参数,你可以在安装包时灵活指定镜像地址,而不需要修改全局或局部的 Conda 配置。
9. conda如何安装别人的conda项目
要安装和运行别人的 Conda 项目,通常需要通过以下几个步骤完成。这些步骤帮助你在本地创建与项目依赖一致的 Conda 环境。
一般流程:
-
获取项目代码
-
通常通过
git clone
或从其他地方下载项目的代码。 -
示例:
bash复制代码git clone <项目的Git仓库地址> cd <项目文件夹>
-
-
检查项目的环境依赖
-
项目通常包含一个
环境文件
,用来定义项目所需的依赖库。常见的环境文件包括:
environment.yml
文件(Conda 环境文件)requirements.txt
文件(Pip 依赖文件,可能存在)
-
environment.yml
是最常见的 Conda 项目依赖文件,通常包含了 Conda 环境的名称、所需的包以及 Python 版本等。
-
-
创建 Conda 环境
- 如果项目提供了
environment.yml
文件,可以直接使用该文件来创建一个新的 Conda 环境。
bashconda env create -f environment.yml
该命令会读取
environment.yml
文件并安装其中列出的所有依赖包,创建一个与项目兼容的环境。- 如果项目没有
environment.yml
文件,但提供了requirements.txt
,你可以先手动创建环境,再通过 Pip 安装依赖:
bashconda create -n <环境名称> python=<版本> conda activate <环境名称> pip install -r requirements.txt
- 如果项目提供了
-
激活环境
-
创建环境后,你需要激活它来运行项目代码:
conda activate <环境名称>
-
-
运行项目
- 激活环境后,项目的依赖已经就绪,可以直接运行项目中的 Python 脚本,或者根据项目的文档运行项目。例如:
bashpython <主脚本文件>.py
额外操作:
-
更新环境 如果
environment.yml
文件发生变化或有新的依赖加入,你可以通过以下命令更新现有环境:bashconda env update --file environment.yml --prune
-
环境导入 如果对方提供了一个 Conda 导出的环境文件(通过
conda env export
生成的),你可以使用这个文件恢复一个完整的环境。此文件通常会列出所有具体的包版本:bashconda env create -f environment.yml
总结
- 克隆项目:获取代码。
- 创建环境 :使用
environment.yml
文件创建 Conda 环境。 - 激活环境:激活并运行项目。
通过这些步骤,你可以轻松安装和运行别人发布的 Conda 项目。
10. pycharm中使用anacoda
为什么anaconda环境中,还需要用pip安装包,此情况下用pip需要哪些注意项
-
anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,我们需要用pip将其装到conda环境里。
-
首先,我们需要判断目前我们用的pip指令,会把包装到哪里,通常情况下,pip不像conda一样,他不知道环境,我们首先要确保我们用的是本环境的pip,这样pip install时,包才会创建到本环境中,不然包会创建到base环境,供各个不同的其他conda环境共享,此时可能会产生版本冲突问题(不同环境中可能对同一个包的版本要求不同)
-
用下面命令查看我们此时用的pip为哪个环境:
bashwhere pip
11. 一打开终端就默认进入conda的base环境,取消方法
安装conda之后,在使用VSCode的时候,每次在里面使用powershell终端都是默认进入base环境,稍不注意就会用错python解释器,所以考虑取消这一设置。经过查看官方文档和自己尝试,有两种方法。
在终端修改配置
conda官方文档中有conda config 的相关使用介绍,其中有conda config --show的说明:
Display configuration values as calculated and compiled. If no arguments given,
show information for all configuration values.
所以在终端输入conda config --show,会显示所有的配置信息。注意到有:
然后就可以利用conda config --set来修改此配置:
bash
conda config --set auto_activate_base false
然后重启终端即可