conda高阶使用技巧
什么是 conda?
Conda 是一个免费的开源软件程序,用于包和环境管理,最初由 Anaconda 开发。如今,conda 由开源社区的成员维护,并独立于 Anaconda, Inc. 运营。任何人都可以为 conda 做出贡献,包括您!
Anaconda 的 conda 文档侧重于将 conda 与 Anaconda Distribution 或 Miniconda 结合使用。我们的文档包括 docs.conda.io 上的官方 conda 文档中相关资源的链接,这些链接提供了有关 conda 命令的详细信息以及使用 conda 的技术指南。
快速入门
提示: 建议为任何新项目或工作流创建新环境。
验证 conda 安装并检查版本: conda info
在基本环境中更新 conda: conda update -n base conda
安装最新的 Anaconda 发行版: conda install anaconda
创建新环境(提示:描述性地命名环境):conda create --name ENVNAME
activate environment (在安装软件包之前执行此作)
conda activate ENVNAME
频道和包
提示: 使用 conda 时,会自动解决包依赖项和平台细节。
列出已安装的软件包: conda list
列出已安装的包和源信息: conda list --show-channel-urls
更新所有软件包: conda update --all
从特定通道安装包: conda install -c CHANNELNAME PKGNAME
conda install CHANNELNAME::PKGNAME
安装特定版本的软件包: conda install PKGNAME=3.1.4
使用 AND 逻辑安装软件包: conda install “PKGNAME>2.5, <3.2”
使用 OR 逻辑安装软件包: conda install “PKGNAME [version=’2.5|3.2’]”
卸载软件包: conda uninstall PKGNAME
频道源
查看频道源: conda config --show-sources
添加频道: conda config --add channels CHANNELNAME
设置 PKG 获取的默认通道(以通道源中的第一个通道为目标): conda config --set channel_priority strict
conda 下proxy 的设置
没办法啊,我在局域网,要使用 anaconda 还要透过代理, 所以如何设置 proxy就是个问题。
查看现有代理设置
conda config --show channels #view your configuration's current state,
conda config --show-sources #view config file locations.
Anaconda 安装包可以到 http://mirrors.aliyun.com/anaconda/archive/ 下载。
Linux用户可以通过修改用户目录下的 .condarc 文件。
Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。
可以参考阿里云提供的方法和文件:
https://developer.aliyun.com/mirror/anaconda/?spm=a2c6h.25603864.0.0.6a632eb1HSXwQ0
或者清华的:
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
设置 proxy有两种方式,
第一种,conda config --set proxy_servers 命令生成
conda config --set proxy_servers.http http://id:pw@address:port
conda config --set proxy_servers.https https://id:pw@address:port
运行完成之后,去 C:\Users(你的名字)这个目录下查看 .condarc 这个文件,可以用文本方式打开。
注意:conda config 命令改写的是.condarc 这个文件,而pip config 改写的是 C:\Users\用户名\AppData\Roaming\pip\ 目录下的pip.ini
一个标准的pip.ini的内容是下面这样的:
[global]
timeout=40
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=
http://mirrors.aliyun.com/pypi/simple/
http://pypi.douban.com/simple
http://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
pypi.douban.com
pypi.mirrors.ustc.edu.cn
第二种,手工改写condarc文件
1、不使用代理用户名密码的
proxy_servers:
http: http://xxxx:8080
2、代理需要用户名的
proxy_servers:
http: http://user:password@xxxx:8080
https: https://user:password@xxxx:8080
添加国内代理源
命令行中直接使用以下命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
#设置搜索时显示通道地址
conda config --set show_channel_urls yes
#添加中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
生成文件如下:
channels:
- defaults
show_channel_urls: True
allow_other_channels: True
proxy_servers:
http: http://proxy.yourorg.org:port
https: https://proxy.yourorg.org:port
ssl_verify: False
在命令行中运行如下命令可以轻松配置:
其他 conda 操作
.condarc配置文件的标准样版
修改conda配置信息:Windows的.condarc一般位于C盘C:\Users\username下面,
因为.condarc默认是隐藏的,所以需要在查看里面,勾选隐藏的项目,
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
show_channel_urls: true
ssl_verify: false
2023-4-4 本人最新的.condarc文件:
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.aliyun.com/anaconda/pkgs/main
- http://mirrors.aliyun.com/anaconda/pkgs/r
- http://mirrors.aliyun.com/anaconda/pkgs/msys2
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
- https://anaconda.org
custom_channels:
conda-forge: http://mirrors.aliyun.com/anaconda/cloud
msys2: http://mirrors.aliyun.com/anaconda/cloud
bioconda: http://mirrors.aliyun.com/anaconda/cloud
menpo: http://mirrors.aliyun.com/anaconda/cloud
pytorch: http://mirrors.aliyun.com/anaconda/cloud
simpleitk: http://mirrors.aliyun.com/anaconda/cloud
使用 Conda 环境
提示: 在会话开始时列出环境。带星号的环境处于活动状态。
列出所有环境和位置: conda info --envs
列出所有包 + 源频道: conda list -n ENVNAME --show-channel-urls
在环境中安装包: conda install -n ENVNAME PKGNAME1 PKGNAME2
从环境中删除包: conda uninstall -n ENVNAME PKGNAME
更新 environment 中的所有软件包: conda update --all -n ENVNAME
环境管理
提示: 指定环境名称会将 conda 命令限制为该环境。
使用 Python 版本创建环境: conda create -n ENVNAME python=3.10
克隆环境: conda create --clone ENVNAME -n NEWENV
重命名环境: conda rename -n ENVNAME NEWENVNAME
按名称删除环境: conda remove -n ENVNAME --all
列出对环境所做的修订: conda list -n ENVNAME --revisions
将环境还原到修订版: conda install -n ENVNAME --revision NUMBER
从特定频道卸载包: conda remove -n ENVNAME -c CHANNELNAME PKGNAME
导出环境
提示: 以环境命名导出文件以保留环境名称。
跨平台兼容:conda export --from-history>ENV.yml
平台 + 包特定:conda export ENVNAME>ENV.yml
平台 + 包 + 渠道特定:conda list --explicit>ENV.txt
导入环境
提示: 导入环境时,conda 会解决平台和包的具体问题。
从 .yml 文件: conda env create -n ENVNAME --file ENV.yml
从 .txt 文件: conda create -n ENVNAME --file ENV.txt
其他提示
获取任何命令的帮助: conda COMMAND --help
获取任何套餐的信息: conda search PKGNAME --info
在没有用户提示符的情况下运行命令,例如,安装多个软件包
conda COMMAND ARG --yes
conda install PKGNAME1 PKGNAME2 --yes
删除所有未使用的文件: conda clean --all
检查 conda 配置
conda config --show
配置共享包缓存
如果您的系统上安装了自己的 Anaconda 或 Miniconda,则可以通过将配置设置为使用共享包缓存来提高安装包或创建新环境的速度并节省磁盘空间。
正常安装会设置相对于安装目录的软件包高速缓存。这可以通过 package cache 下列出的以下命令找到:
conda info
包缓存的正常路径为:
Windows (窗口):C:\Users\username\Anaconda{2,3}\pkgs
macOS:~/anaconda{2,3}
Linux的:/home/username/anaconda{2,3}/pkgs
每个用户都有自己的包缓存,因此在安装包时,包将放入他们自己的缓存中,并且不会与其他任何人共享。
共享包缓存的好处是,一旦用户已经下载了包的特定版本,它就不会再次下载并存储在单独的缓存中。这样可以节省磁盘使用量并加快安装速度,因为它不需要再次下载软件包。
共享包缓存设置
在您的系统上创建一个目录,共享用户具有读取和写入访问权限。
如果您使用的是免费套餐,请在共享目录时小心。如果您已付费访问高级存储库,则可以启用签名验证,以便为包提供额外的安全层。有关 conda 签名验证的更多信息,请参阅我们的博客 Anaconda Content Trust:Conda 签名验证。
然后,对于每个将具有访问权限的用户,编辑在其主目录中找到的文件。.condarc
- Windows (窗口):C:\Users\username.condarc
- macOS 和 Linux:/home/username/.condarc
- 使用以下条目编辑 ,指定共享目录的完整路径:.condarc
复制
pkgs_dirs:
- /path/to/shared_directory
通过再次运行来验证包缓存。conda info
使用 pip 安装软件包会修改您的 conda 环境,但 conda 不知道这些修改。因此,当 conda 稍后尝试修改环境时,conda 跟踪的包和未跟踪的 pip 包之间很可能会出现依赖项冲突,这可能会导致环境中断。
了解 conda 和 pip
在 conda 环境中使用 pip 时,请遵循此页面上的指南,以避免依赖项冲突和损坏的环境。
手动创建文件environment.yml
要创建包含 pip 包的稳定环境,Anaconda 建议编写一个文件,然后从该文件构建环境。虽然这种方法的设置更耗时,但它提供了几个优点:environment.yml
控制包构建顺序、版本和通道
简单的环境更新
通过文件实现更好的可重复性和可共享性.yml
写入文件environment.yml
下面是一个示例文件。编写文件时,请务必最后添加 pip 及其依赖项,因为 conda 会按列出的顺序构建环境。environment.yml
name: myenv # This will become the name of your environment
dependencies: # The list of packages to include in your environment
- python=3.12 # You can specify versions
- bokeh>=2.4.2
- flask
- pip # Install pip in your environment
- pip: # Include pip dependencies last
- Flask-Testing
官方 conda 文档包含有关手动创建环境文件以及软件包匹配规范的更多信息。
从文件创建环境environment.yml
要从文件创建环境,请从包含该文件的目录运行以下命令:environment.yml
conda env create --file environment.yml
有关从 .yml 文件创建环境的详细信息,请参阅官方 conda 文档。
使用文件更新环境environment.yml
如果您需要将包添加到环境中、更改包版本或删除包,请更新文件,然后从包含该文件的目录中运行以下命令来重新构建环境:environment.yml
复制
conda env update --file environment.yml --prune
该选项从环境中删除任何孤立的包。如果包同时满足以下两个条件,则认为该包是孤立的:--prune
它不是由用户显式安装的。
它不是任何当前安装的软件包的依赖项。
浙公网安备 33010602011771号