今天在下载OpenCV的时候发现清华的conda channel镜像已经不能用了,故在此记录:
1)如何显示所有channel;
2)如何更换channel。
1 显示所有channel
首先,conda config --show能够显示出所有conda的config信息。
如果我们只想看channels的信息,输入conda config --show channels即可,如下:
(base) C:\Users\dehen>conda config --show channels
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- defaults
现在我们有两个源,一个清华镜像,一个defauls默认下载源。
然而这个清华源已经不能用了,我在下载opencv的时候,输入:conda install opencv
,但是报错:
(base) C:\Users\dehen>conda install opencv
Solving environment: failed
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64/repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ConnectionError(ReadTimeoutError("HTTPSConnectionPool(host='mirrors.tuna.tsinghua.edu.cn', port=443): Read timed out."))
所以我打算删除这个源。
2 移除清华镜像
输入:conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
这个命令是为了移除之前conda config --show channels显示的清华源。
(base) C:\Users\dehen>conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
(base) C:\Users\dehen>conda config --show channels
channels:
- defaults
(base) C:\Users\dehen>
这时候再运行conda config --show channels会发现清华源已经被删除了
3 添加可用的清华源
参考[4],我发现自己之前安装的清华源的地址https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 是清华维护的conda三方源之一conda-forge的镜像,,,此外清华还有很多可用的源。
所以我根据官网指示进行了添加:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --set show_channel_urls yes的意思是从channel中安装包时显示channel的url,这样就可以知道包的安装来源了。
(注意,之前有推荐conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/的不建议用了,因为无法执行conda create)
4 下载opencv
在添加好这个源(channel)之后,我重新运行conda install opencv,果然能够成功下载!!!
但是中间竟然是自动安装,在安装前的确认[Y/N]的时候,conda直接跳过了,默认是Y。。。
这让我非常难受,所以我运行了:
conda config --set always_yes false
(这里的意思是安装确认中,不默认yes,而是由我来决定)
5 一些其他的conda指令
conda install <包名> 安装指定包
conda remove <包名> 移除指定包
conda update <包名> 更新指定包
参考文献
[1] Annaconda 增加删除镜像 channel, 以及其他python包安装解决办法 404
最开始是看到这里的评论,发现清华的源用不了。
[2] conda常用命令详解 抱歉,你访问的页面不存在。 - 简书
在这里学到了一些conda的命令
[3] [加速]为conda添加国内镜像 404页面
在这里发现原来我之前添加的清华源,和真正的清华源不一样,这促使我进一步寻找可用的清华源。
[4] Anaconda 镜像使用帮助 anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
这里是清华源的官网,我找到了可用的清华源并进行了安装。
常用conda命令:
1.创建一个新环境
conda create -n your_env_name python=X.X
# 或
conda create --name your_env_name python=X.X
-n即--name,your_env_name是你自定义的环境名称。
例如:
conda create -n newenv python=3.7
# python=3.7会安装最新的python3.7系列版本(如3.7.12)
# 如要指定更详细的版本,需使用python=3.7.2
2.激活某个环境
激活,activate。即进入某个环境。
Windows系统:
conda activate your_env_name
Linux系统:
source activate your_env_name
激活环境后,可检查当前环境下的Python版本:
python --version
3.包的安装和删除、环境删除
激活到指定环境后,可直接向环境中安装所需的包:
安装包:
conda install [package]
# 如:conda install numpy
# 指定包版本:conda install xlrd=1.2.0 (注意是单等于号)
# 也可以使用pip install安装 pip install xlrd==1.2.0 (注意是双等于号)
# 查看可用的版本:pip install spyder==*
删除当前环境中的某个包:
conda remove [package]
# 请注意:并非conda uninstall
# pip指令下才有 pip uninstall
升级某个包:
conda update [package]
# conda update --all 升级所有包
退出当前虚拟环境:
source deactivate # Linux环境
conda deactivate # Windows环境
删除某个虚拟环境:
conda remove -n your_env_name --all
# -n即--name
复制某个虚拟环境:
conda create --name new_env_name --clone old_env_name
在安装前的确认[Y/N]的时候,false表示由用户再做决定,而不直接进行:
conda config --set always_yes false
4.环境查询
查看安装了哪些包:
conda list
查看当前有哪些虚拟环境:
conda env list
# 或
conda info --envs
查询环境python版本:
python --version
查询conda版本:
conda --version
更新conda:
conda update conda
查看conda环境详细信息:
conda info
5.分享/备份环境
一个分享环境的快速方法就是给他一个你的环境的.yml文件。
首先激活到要分享的环境,在当前工作目录下生成一个environment.yml文件。
conda env export > environment.yml
对方拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令从该文件创建环境。
conda env create -f environment.yml
6.镜像源
conda方法:
查看镜像源:
conda config --show channels
添加镜像源(如清华源):
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/main
conda config --set show_channel_urls yes
# conda config --set show_channel_urls yes的意思是从channel中安装包时显示channel的url,这样就可以知道包的安装来源了。
清除索引缓存,保证用的是镜像站提供的索引:
conda clean -i
搜索包:
conda search [package]
切换回默认源:
conda config --remove-key channels
移除某个镜像源(如清华源):
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
pip方法:
临时指定安装某个包使用的镜像源:
pip install [package] -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install [package] -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
'''
清华:https://pypi.tuna.tsinghua.edu.cn/simple
腾讯:https://mirrors.cloud.tencent.com/pypi/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
'''
7.清理
删除没有用的包:
conda clean -p
删除tar包:
conda clean -t
删除所有的安装包及cache:
conda clean -y --all