conda与pip的镜像源与代理设置
- 一、前言
- 二、conda镜像源设置
- 2.1conda默认镜像源介绍
- 2.2通过终端设置镜像源
- 2.3通过配置文件设置镜像源
- 三、pip镜像源设置
- 3.1pip默认镜像源介绍
- 3.2通过终端临时设置镜像源
- 3.3通过配置文件设置一个或多个镜像源
- 四、conda代理设置
- 4.1通过终端设置代理
- 4.2通过配置文件设置代理
- 4.3在系统环境变量中设置代理
- 五、pip代理设置
- 5.1通过终端临时设置代理
- 5.2通过配置文件设置代理
- 5.3在系统环境变量中设置代理
- 六、不同虚拟环境中的pip设置
- 6.1在虚拟环境文件夹下创建pip配置文件
- 6.2在虚拟环境的激活脚本中设置配置
- 参考文档
一、前言
使用conda、pip命令行工具安装一些需要的工具包或函数库时,由于默认的镜像源连接速度很慢,影响开发效率,或者由于计算机处于局域网,必须通过规定的IP地址转接才能访问互联网,因此本文对windows系统下如何设置镜像源及代理进行介绍。
系统环境如下:
windows:win10专业版
conda:4.9.2
pip:24.0
二、conda镜像源设置
conda的镜像源可通过终端和配置文件进行设置,都是设置后永久生效。
2.1conda默认镜像源介绍
conda默认的镜像源通常指 Anaconda 官方提供的软件包仓库地址,有三个,地址如下:
https://repo.anaconda.com/pkgs/main
https://repo.anaconda.com/pkgs/r
https://repo.anaconda.com/pkgs/msys2
main 频道:主要包含由Anaconda提供和维护的广泛使用的开源软件包。
r 频道:专门用于 R 语言及其相关工具和包。
msys2 频道:包含 Windows 上使用的工具和库。
如果未进行任何镜像源设置,那么conda将使用默认镜像源,按照顺序依次从上述地址查找软件包。
2.2通过终端设置镜像源
以管理员身份打开conda终端,然后以清华镜像源为例,输入以下命令添加镜像源:
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/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
注意使用命令添加的镜像源,类似于栈结构的后进先出,最后添加的优先级最高,即如果输入上述命令,那么main频道的优先级最高,conda将优先从main频道查找软件包。
清华镜像源的三个频道介绍如下:
main :是 Anaconda 的主要官方渠道,包含最新稳定版软件包,推荐使用。
free :是旧的官方免费渠道,包括了在 Anaconda 5.0 之前发布的所有软件包,已经停止更新,仅用于兼容性需求。
cloud/conda-forge: 是社区维护的渠道,提供了广泛的包集合和最新的软件版本,更新频繁。
与清华的conda-forge频道相对应,conda也有一个社区维护的频道,地址为:
https://conda.anaconda.org/conda-forge
添加镜像源后,可使用如下命令进行查看:
conda config --show channels
显示出的镜像源的从上到下排列顺序即为优先级顺序。
想要移除某个镜像源,可使用如下命令:
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
如果想要移除添加的全部镜像源,可使用如下命令,移除后conda将使用默认源:
conda config --remove-key channels
2.3通过配置文件设置镜像源
conda配置文件名为.condarc,位于C:\Users\自己的用户名文件夹。以添加清华源为例,使用文本编辑器打开文件后,在文件中添加如下内容:
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
- defaults
show_channel_urls: true
report_errors: false
文件中在channels中定义了三个清华源和一个defaults,defaults代表默认源,当安装软件包时,conda会首先依次从三个清华源中查找,如果查找不到则会到默认源中查找。
show_channel_urls:用于控制 conda 是否在输出中显示包的下载 URL,这对于调试和了解包从哪个频道下载很有用。
report_errors:控制是否在 conda 出现错误时,将错误信息报告给 conda 开发团队。这有助于开发团队了解用户遇到的问题并改进 conda。
三、pip镜像源设置
pip的镜像源可通过终端和配置文件设置,但通过终端只能进行临时性设置,配置文件的设置为永久设置,这一点与conda有所不同。
3.1pip默认镜像源介绍
pip安装软件包时,默认的镜像源是 Python Package Index (PyPI),其 URL 为 https://pypi.org/simple。当未对镜像源进行设置时,pip会使用默认镜像源。
与conda不同,pip默认的镜像源只有上述一个。
3.2通过终端临时设置镜像源
pip可以通过终端以命令的形式设置镜像源,但设置的镜像源的命令与安装软件包的命令捆绑在一起,即安装一次软件包设置一次镜像源,在当前镜像源查找不到软件包时不会去默认镜像源继续查找,以安装numpy和使用清华镜像源为例,命令如下:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
也可通过终端设置pip下载软件包进行网络连接的超时时间,默认超时时间是15s,设置超时时间为30s的命令如下:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout 30
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout 30
上述两条命令是等效的,timeout和default-timeout都可设置超时时间。
注意超时时间是针对网络连接而言,包括通过代理服务器访问镜像源并下载软件包的整个过程,不单作用于镜像源,也作用于代理。
3.3通过配置文件设置一个或多个镜像源
pip默认配置文件名为pip.ini,位于%APPDATA%\pip,如果找不到该文件夹或文件,可以手动创建。打开文件后,添加如下内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url =
https://pypi.org/simple
https://pypi.mirrors.ustc.edu.cn/simple
timeout = 30
上述内容定义了三个镜像源和超时时间,三个源的优先级即为从上到下的排列顺序,pip下载软件包时会依次从三个源进行查找。
保存配置文件后,可使用以下命令来验证 pip 的配置:
pip config list
四、conda代理设置
conda的代理可通过终端和配置文件进行设置,也还可在系统的环境变量中设置代理,conda在自身没有设置代理的情况下会读取环境变量中的代理设置,但环境变量的代理设置可能会影响到其他程序。如果同时设置了自身的代理和环境变量的代理,conda会优先使用自身代理。
4.1通过终端设置代理
设置http和https代理命令如下:
conda config --set proxy_servers.http http://0.0.0.0:00000
conda config --set proxy_servers.https https://0.0.0.0:00000
设置完成后,可通过如下命令进行查看:
conda config --show proxy_servers
也可使用如下命令删除代理:
conda config --remove-key proxy_servers.http
conda config --remove-key proxy_servers.https
4.2通过配置文件设置代理
打开配置文件,添加如下内容:
proxy_servers:
http: http://0.0.0.0:00000
https: https://0.0.0.0:00000
4.3在系统环境变量中设置代理
在系统环境变量中设置代理的方式有两种,分别为使用命令行终端(cmd)和通过界面设置。
方式一:使用命令行终端(暂时性设置)
打开cmd,然后输入以下命令:
set HTTP_PROXY=http://0.0.0.0:00000
set HTTPS_PROXY=https://0.0.0.0:00000
这种方式设置的代理仅在当前命令行终端有效,关闭命令行终端后设置会丢失。
方式二:界面设置(永久设置)
1、打开 我的电脑,在空白处右键,点击属性;
2、点击左侧的高级系统设置;
3、在 系统属性 窗口中,点击 环境变量;
4、在 环境变量 窗口中,选择在用户变量或系统变量执行下述步骤即可:
5、
点击 新建 按钮。
在 变量名 中输入 HTTP_PROXY。
在 变量值 中输入 http://0.0.0.0:00000。
点击 确定。
6、重复步骤5添加 HTTPS_PROXY 变量。
设置好后如下图:
设置完成后打开cmd,输入以下命令查看环境变量设置:
echo %HTTP_PROXY%
echo %HTTPS_PROXY%
五、pip代理设置
pip代理设置与镜像源设置类似,通过终端只能进行临时性设置,而通过配置文件可实现永久设置,此外与conda一样,也可通过系统的环境变量设置代理,pip自身的代理优先级同样高于环境变量的代理。
5.1通过终端临时设置代理
以下载安装numpy为例,设置代理命令如下:
pip install numpy --proxy http://0.0.0.0:00000
5.2通过配置文件设置代理
打开配置文件,添加以下内容:
[global]
proxy = http://0.0.0.0:00000
保存配置文件后,可通过以下命令来验证 pip 的配置:
pip config list
5.3在系统环境变量中设置代理
参照4.3小节。
六、不同虚拟环境中的pip设置
上述pip的配置文件是全局配置文件,会作用于所有由conda创建的虚拟环境中的pip,如果需要对每个虚拟环境中的pip进行一些特定配置,方法如下:
6.1在虚拟环境文件夹下创建pip配置文件
如虚拟环境名为myenv,则到conda的安装目录\envs\myenv目录下,创建pip.ini文件,按照前文所述对pip进行配置,那么在该虚拟环境下使用pip就会加载此配置文件。
6.2在虚拟环境的激活脚本中设置配置
1、找到虚拟环境的激活脚本目录:conda的安装目录\envs\myenv\etc\conda\activate.d
如果activate.d文件夹不存在,可进行创建。
2、创建或编辑一个名为 pip_config.bat 的脚本文件,内容如下:
set PIP_CONFIG_FILE=%CONDA_PREFIX%\pip.conf
3、找到虚拟环境的deactivate 脚本目录:conda的安装目录\envs\myenv\etc\conda\deactivate.d
如果deactivate.d文件夹不存在,可进行创建。
4、创建或编辑一个名为 de_pip_config.bat 的脚本文件,重置环境变量,内容如下:
set PIP_CONFIG_FILE=
5、然后在虚拟环境的根目录中创建 pip.conf 文件,按照前文所述对pip进行配置。
参考文档
更换pip源到国内镜像