找回密码
 会员注册
查看: 35|回复: 0

Pythonconda镜像配置,.condarc文件详解,channel镜像

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-4 19:05:03 | 显示全部楼层 |阅读模式
1.conda环境安装miniconda即可,Miniconda安装包可以到http://mirrors.aliyun.com/anaconda/miniconda/下载。安装完后,可进入开始菜单栏中点击AnacondaPromot,通过conda命令进行使用。.condarc是conda应用程序的配置文件,在用户家目录(windows:C:\users\username\),用于管理镜像源。如果不存在,则打开conda的,执行一下:condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/12.conda包管理目录anaconda安装的位置/pkgs该目录是用户指定update或install时由Conda下载并提取的包,都是解压后的包,可以在conda环境中通过link关联。anaconda安装的位置\envs\虚拟环境\Lib\site-packages则是启用虚拟环境后import时导入包的地方。它们来自anaconda安装的位置/pkgs。anaconda安装的位置/Lib/site-packages是base环境的路径。3.配置镜像源3.1通过命令配置和删除#查看当前conda配置condaconfig--showchannels#增加channelcondaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/#设置搜索是显示通道地址condaconfig--setshow_channel_urlsyes12345678910condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/会直接加到.condarc文件的channels下面,成为一个独立的channel:3.2通过修改文件添加(推荐)直接修改.condarc文件是最方便的。大家常搜到的配置文件如下:阿里源(来自阿里云官方镜像配置指导):channels:-defaultsshow_channel_urls:truedefault_channels:-http://mirrors.aliyun.com/anaconda/pkgs/main-http://mirrors.aliyun.com/anaconda/pkgs/r-http://mirrors.aliyun.com/anaconda/pkgs/msys2custom_channels:conda-forge:http://mirrors.aliyun.com/anaconda/cloudmsys2:http://mirrors.aliyun.com/anaconda/cloudbioconda:http://mirrors.aliyun.com/anaconda/cloudmenpo:http://mirrors.aliyun.com/anaconda/cloudpytorch:http://mirrors.aliyun.com/anaconda/cloudsimpleitk:http://mirrors.aliyun.com/anaconda/cloud1234567891011121314清华源:channels:-defaultsshow_channel_urls:truedefault_channels:-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/msys2custom_channels:conda-forge:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud1234567891011121314配置完后如果不生效可清空conda缓存再试试:condaclean-i14..conda文件详解conda配置文件.condarc是一个可选的运行时配置文件,允许用户配置conda的各个方面,例如在哪些channel中搜索包、代理设置和环境目录。本文仅讨论和channel相关的部分。4.1channelschannels下面配置的就是可访问的chennel。修改.condarc文件的channels会覆盖conda搜索的默认值,导致conda仅按给定顺序搜索此处列出的频道。频道有url和非url之分:url:自定义的搜索地址,如前面的https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/非url:Anaconda.org用户或组织名称,如conda-forge对应着https://conda.anaconda.org中的conda-forge。如果.condarc文件如下:channels:-conda-forge-http://Code_LT-defaults1234则conda搜索pandas包的时候就会按conda-forge->http://Code_LT->defaults的顺序搜索。4.2channels分类conda把channel分为两类默认channel(defaultchannels)社区channel(communitychannels)如果不修改.condarc文件,conda会默认从这两类channel中搜索需要的包:默认channel:对应repo.anaconda.com仓,硬编码写死了对应如下三个仓库(:https://repo.anaconda.com/pkgs/mainhttps://repo.anaconda.com/pkgs/rhttps://repo.anaconda.com/pkgs/msys2123社区channel:对应conda.anaconda.org仓,即https://conda.anaconda.org4.3channels镜像修改.condarc文件除了把url硬编码进chennels下面,还可以把非url的Anaconda.org用户或组织名称映射到指定的仓。根据channels分类可知道,要修改的化就涉及默认channel和社区channel的修改。利用default_channels修改默认channel如前面讲的阿里镜像中的:default_channels:-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/msys21234则把原有的defaults对应的仓换成了上面的阿里仓。利用channel_alias修改社区channel所有社区频道都会被修改,这个用得比较少,如:channel_alias:https://my-mirror.com1则配置conda-forge频道后,conda不会再去https://conda.anaconda.org搜。利用custom_channels修改指定社区channelcustom_channels:conda-forge:https://Code_LT/conda-forge12这样写进.condarc文件中后,配置conda-forge就不会再去https://conda.anaconda.org搜,而是到https://Code_LT/conda-forge搜,其他社区频道不变。这样,清华源和阿里源的配置就弄明白了。4.4channel_priority频道优先级,可以通过命令condaconfig--describechannel_priority1查看该字段的含义##Acceptsvaluesof'strict','flexible',and'disabled'.Thedefault##valueis'flexible'.Withstrictchannelpriority,packagesinlower##prioritychannelsarenotconsideredifapackagewiththesamename##appearsinahigherprioritychannel.Withflexiblechannelpriority,##thesolvermayreachintolowerprioritychannelstofulfill##dependencies,ratherthanraisinganunsatisfiableerror.Withchannel##prioritydisabled,packageversiontakesprecedence,andthe##configuredpriorityofchannelsisusedonlytobreakties.In##previousversionsofconda,thisparameterwasconfiguredaseither##TrueorFalse.Trueisnowanaliasto'flexible'.12345678910默认是flexible,看不少博客推荐strict,可通过如下方式修改:condaconfig--setchannel_prioritystrict1或者直接在.condarc文件中添加:channel_priority:strict4.5为环境配置单独的.condarc文件要为单个环境选择通道,请将.condarc文件放入该环境的根目录中(或使用condaconfig时使​​用--env选项)。示例:如果您已在主目录中安装了带有Python3的Miniconda,并且环境名为“flowers”,则路径可能为:~/miniconda3/envs/flowers/.condarc5.配置文件冲突解决conda会在如下目录中搜索.condarc文件ifon_win:SEARCH_PATH=("C:/ProgramData/conda/.condarc","C:/ProgramData/conda/condarc","C:/ProgramData/conda/condarc.d",)else:SEARCH_PATH=("/etc/conda/.condarc","/etc/conda/condarc","/etc/conda/condarc.d/","/var/lib/conda/.condarc","/var/lib/conda/condarc","/var/lib/conda/condarc.d/",)SEARCH_PATH+=("$CONDA_ROOT/.condarc","$CONDA_ROOT/condarc","$CONDA_ROOT/condarc.d/","$XDG_CONFIG_HOME/conda/.condarc","$XDG_CONFIG_HOME/conda/condarc","$XDG_CONFIG_HOME/conda/condarc.d/","~/.config/conda/.condarc","~/.config/conda/condarc","~/.config/conda/condarc.d/","~/.conda/.condarc","~/.conda/condarc","~/.conda/condarc.d/","~/.condarc","$CONDA_PREFIX/.condarc","$CONDA_PREFIX/condarc","$CONDA_PREFIX/condarc.d/","$CONDARC",)1234567891011121314151617181920212223242526272829303132333435多个文件之间可能会发生冲突,按照如下原则解决冲突(具体不展开了,可自行查看官网资料):Lists-mergeDictionaries-mergePrimitive-clobber冲突解决的优先级:6.conda常用命令#获取版本号conda-V#获取帮助conda-h#环境管理命令帮助condaenv-h#列举所有环境condainfo--envcondaenvlist#Python创建虚拟环境condacreate-nyour_env_namepython=x.x#复制某个环境condacreate--namenew_env_name--cloneold_env_name#彻底删除旧环境,则可以实现重命名环境condaremove--nameold_env_name--all#注意:必须在base环境下进行以上操作,否则会出现各种莫名的问题。#激活或者切换虚拟环境Windows:activateyour_env_nameLinux:sourceactivateyour_env_nam#关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)Windows:deactivate或者activateroot切回root环境Linux:sourcedeactivate#删除虚拟环境condaremove-nyour_env_name--all#删除环境钟的某个包condaremove--name$your_env_name$package_name#列举包condalistcondalist-nyour_env_name#列举非当前活跃环境下的所有包#安装包condainstall[package]condainstall-nyour_env_name[package]#安装非当前活跃环境下的包condainstall--channelhttps://conda.anaconda.org/anacondatensorflow=1.8.0#指定版本和channel#升级包condaupdate[package]condaupdateconda#升级conda#查找包condasearch-h#查看search使用帮助信息condasearchtensorflow#查看指定包可安装版本信息命令condasearchllama-index--channelconda-forge#指定频道搜索#卸载包condauninstall[package]#卸载xxx文件包#清理包condaclean-p//删除没有用的包#这个命令会检查哪些包没有在包缓存中被硬依赖到其他地方,并删除它们condaclean-t//删除tar包condaclean-y--all//删除所有的安装包及cache#分享环境activatetarget_env#进入要分享的环境condaenvexport>environment.yml#当前工作目录下生成一个environment.ymlcondaenvcreate-fenvironment.yml#拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令从该文件创建环境12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364657.condainstall和pipinstall先说结论:conda中可以使用pip,但conda并不兼容pip,pip安装的包越多,越容易引发包版本依赖问题,所以能用conda安装的包先用conda安装,不能的再到激活的虚拟环境里用pip安装.condainstallxxx:这种方式安装的库都会放在anaconda安装的位置/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。pipinstallxxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda安装的位置/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中。8.conda配置代理.condarc文件中加入代理信息即可channels:-defaultsshow_channel_urls:true...proxy_servers:http:http://xxx.xx.com:8080https:https://xxx.xx.com:8080ssl_verify:false12345678910注意把http:和https:后面的链接换成你的代理链接和端口号。9.常见报错与本地安装9.1PackagesNotFoundErrorPackagesNotFoundError:Thefollowingpackagesarenotavailablefromcurrentchannels两个常见原因:镜像本身的问题(比如网络问题或者服务问题),解决方法:清华源和阿里源切换着试试要安装的包不在default频道里,从上面的配置说明可以知道,默认.condarc文件配置,只启用了default频道,如果知道某些包在其他频道,比如tiktoken就在conda-forge频道里,那就要把conda-forge在channels下面启用channels:-defaults-conda-forgeshow_channel_urls:truedefault_channels:-http://mirrors.aliyun.com/anaconda/pkgs/main-http://mirrors.aliyun.com/anaconda/pkgs/r-http://mirrors.aliyun.com/anaconda/pkgs/msys2custom_channels:conda-forge:http://mirrors.aliyun.com/anaconda/cloudmsys2:http://mirrors.aliyun.com/anaconda/cloudbioconda:http://mirrors.aliyun.com/anaconda/cloudmenpo:http://mirrors.aliyun.com/anaconda/cloudpytorch:http://mirrors.aliyun.com/anaconda/cloudsimpleitk:http://mirrors.aliyun.com/anaconda/cloud123456789101112131415或者不想改配置文件也可以conda命令行里带指定频道:condainstall--channelconda-forgetiktoken1本地安装conda仓库中确实没有这个包,那就只能找到发布包下载到本地安装了。可在pypi.org上搜索你要的包,下载到本地,如下图。这里下载到的通常是gz包(这是给pipinstall用的),需要转换成bz2包(condainstall用的),可以直接用cloudconvert做在线转换,得到要的包:然后按照如下方法操作1.下载安装包到anaconda安装的位置/pkgs/下2.cd到anaconda安装的位置/pkgs/目录下3.使用命令condainstall--use-localxxx.tar.bz2安装本地包。123实在不行(比如转换文件不可用,或者执行condainstall后没反应等),回到第7节,用pipinstall解决。9.2CondaHTTPError:HTTP000CONNECTIONFAILEDforurl应该是网速的原因,因为下载时间过长,会自动断开,就会提示连接失败,设置延时1000s,如果还是不行的话就设置2000s。condaconfig--setremote_read_timeout_secs1000.01或者在.condarc文件中添加参考:Anaconda安装的包所在的位置Anaconda的包路径,终于讲清楚了官网:安装包list和位置相关【conda】配置国内镜像源官网:conda目录结构介绍官网:.condarc文件官方解释官网:channel镜像的官方说明阿里云官方镜像配置指导python中的PYTHONHASHSEEDpipinstall和condainstall有什么区别吗?工具篇:condaandpipconda常用命令:安装,更新,创建,激活,关闭,查看,卸载,删除,清理,重命名,换源,问题conda配置代理CondaHTTPError:HTTP000CONNECTIONFAILEDforurl解决方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-12 18:17 , Processed in 0.496804 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表