[python]pip换源详解
[python]pip换源详解
前言
现有的各个网站上的pip换源方式,很零散,或者是很单调的重复,又或者只是给出命令,尽管这通常就够用了。
但是,我希望汇总一下,然后再结合pip的官方文档来做一些补充。
因为,换源是一个很基础的操作,很多操作,久了不用的话,也很容易忘,所以总结一下,也是很有意义的。
目前本文章仅仅涉及Windows
环境下的操作,暂未包括其他系统下的换源操作。
目录
@
了解pip配置文件
配置文件
-
global
:系统范围的配置文件,在用户之间共享 -
user
:每个用户的配置文件 -
site
:每个环境的配置文件,i.e.per-virtualenv
对应级别的配置文件在对应的系统的所在路径
Windows:
Global
- 在Windows 7 及以上版本:(隐藏但可写)
C:\ProgramData\pip\pip.ini
- Windows Vista:不支持全局配置
- Windows XP:
C:\Documents and Settings\All Users\Application Data\pip\pip.ini
- 在Windows 7 及以上版本:(隐藏但可写)
User
(笔者试验后只有此文件)-
%APPDATA%\pip\pip.ini
-
C:\Users\Administrator\AppData\Roaming\pip\pip.ini
- 还会加载旧版“每个用户”的配置文件(如果存在):
%HOME%\pip\pip.ini
-
Site
-
%VIRTUAL_ENV%\pip.ini
-
PIP_CONFIG_FILE
- 环境变量可以指定最后加载的配置文件,其值将覆盖上述文件中设置的值。
- 在
os.devnull
中设置它,可以禁用所有的配置文件,如果设置的位置已经存在该文件,用户的配置文件不会被加载
配置文件加载顺序
如果pip找到多个配置文件,pip会按照下面的次序加载它们:
- Global
- User
- Site
-
PIP_CONFIG_FILE
, 如果存在该文件
每次加载配置文件,都会覆盖从之前加载的文件中读取的任何值,例如,在全局(global)设置中和用户(User)设置中,如果都设置了timeout
的数值,那么pip会使用后者(User)的值。
命令选项配置
配置文件内的命名都派生于命令行长选项。
比如,如果你想使用一个不同的包索引--index-url
,并且将HTTP
超时设置为60秒--default-timeout
,那么你的配置文件将如下所示:
[global]
timeout = 60
index-url = https://download.zope.org/ppix
每个子命令都可以在其自己的部分中选择配置,而这将会覆盖具有相同名称的全局设置。
例如,如果你在运行pip freeze
时希望减少秒数为10秒,并且为所有其他的命令使用减少后的秒数:
[global]
timeout = 60
[freeze]
timeout = 10
对于布尔选项的设置,如--ignore-installed
或者 --no-dependencies
可以像这样设置:
[install]
ignore-installed = true
no-dependencies = yes
如果要启用布尔选项--no-compile
, --no-warn-script-location
和 --no-cache-dir
必须使用假值(false
|no
):
[global]
no-cache-dir = false
[install]
no-compile = no
no-warn-script-location = false
可重复选项的选项,如--verbose
和 --quiet
,一个非负整数可以被用来代表被指定的级别:
[global]
quiet = 0
verbose = 2
给在配置文件里的部分添加值时有可能的。给可以被写在多行中的选项如--find-links
或者 --trusted-host
添加数值是被允许的。
这就使得用户能够按照命令行参数加入的顺序附加参数。
[global]
find-links =
http://download.example.com
[install]
find-links =
http://mirror1.example.com
http://mirror2.example.com
trusted-host =
mirror1.example.com
mirror2.example.com
可以使用格式化的PIP_<UPPER_LONG_NAME>
来设置pip命令行选项的环境变量,破折号-
必须被下划线_
替代:
PIP_DEFAULT_TIMEOUT=60
等同于--default-timeout=60
PIP_FIND_LINKS="http://mirror1.example.com http://mirror2.example.com"
等同于--find-links=http://mirror1.example.com --find-links=http://mirror2.example.com
没有数值的可重复选项(例如
--verbose
)可以通过使用重复的数值来指定数值
PIP_VERBOSE=3
等同于pip install -vvv
注意:
设置空字串的环境变量不能被视为假值,使用
no
,false
,0
来替代
命令行选项覆盖环境变量,环境变量覆盖配置文件中的值。在配置文件中,命令特定部分的值覆盖全局部分的值。
-
--host=foo
覆盖PIP_HOST=foo
-
PIP_HOST=foo
覆盖配置文件中的[global] host = foo
- 在配置文件中的一个命令的特定部分
[<command>] host = bar
覆盖在配置文件部分[global]
中的同名选项.
配置方式
法一:直接打开配置文件进行编辑
直接打开%APPDATA%\pip\pip.ini
(C:\Users\Administrator\AppData\Roaming\pip\pip.ini
),然后对其进行编辑。
-i
,--index-url <url>
:Python包索引的基本URL(默认为https://pypi.org/simple)。这应该指向符合PEP 503(简单存储库API)的存储库或以相同格式布局的本地目录。
--extra-index-url <url>
:
除了--index-url
之外要使用的包索引的额外url。应该遵循与--index-url
相同的规则。
-f
,--find-links <url>
:如果是html文件的URL或路径,那么解析到归档文件的链接,例如sdist (.tar.gz)或wheel (.whl)文件。如果本地路径或file:// URL是一个目录,那么在目录列表中查找存档。不支持VCS项目url的链接。
--trusted-host <hostname>
:将此主机或(主机:端口)标记为受信任,即使它是无效的链接或任何HTTPS。
根据前面的命令选项配置部分,我们可以在配置文件里设置参数(包索引的基本URL和包索引的额外URL)的数值,从而实现换源。
示例为pip多源配置:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url =
https://pypi.mirrors.ustc.edu.cn/simple/
http://pypi.douban.com/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/
http://pypi.mirrors.ustc.edu.cn/simple/
https://pypi.org/simple
[install]
trusted-host=
mirrors.aliyun.com
pypi.mirrors.aliyun.com
pypi.douban.com
pypi.tuna.tsinghua.edu.cn
pypi.mirrors.ustc.edu.cn
法二:通过命令设置
使用pip config set
命令,直接设置相关命令选项的数值
py -m pip config [<file-option>] list
py -m pip config [<file-option>] [--editor <editor-path>] edit
py -m pip config [<file-option>] get command.option
py -m pip config [<file-option>] set command.option value
py -m pip config [<file-option>] unset command.option
py -m pip config [<file-option>] debug
- list:列出活动的配置(或者从指定的文件)
- edit:在编辑器里面编辑配置文件
- get:获得和命令选项相关的数值
- set:设置命令选项的数值
- unset:取消设置命令选项的数值
- debug:列出配置文件和在它们中定义的数值
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
:设置配置文件
global
的index-url
的数值为https://pypi.tuna.tsinghua.edu.cn/simple
也就是,设置你的Python包索引的基本URL为
https://pypi.tuna.tsinghua.edu.cn/simple
这也就是我们常说的换源操作。
pip config set global.extra-index-url "<url1> <url2>..."
:如果说,你想要设置备用源的话(其他几个国内镜像源,以及以防万一的,默认的源https://pypi.org/simple),那么你需要这个命令。
其中
<url1>
和<url2>
指的是你需要设置的备用源的URL地址,它们之间需要用空格隔开。这也就是我们设置的多个备用源的操作
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
:这条命令的作用在前面提到过,标记主机或者主机:端口为信任。
当你选用了非默认源后,似乎通常需要设置非默认源为信任。
如果不设置会怎样,笔者暂时未尝试过。
参考资料
pip官方文档
[python]pip换源详解的更多相关文章
- Python pip换源
前言 哈喽呀,小伙伴们,晚上好呀,今天要给大家带来点什么呐,我们就来说说python的pip换源吧,这个换源,相对来说,还是比较重要的,能少生好几次气的,哈哈哈 为什么要换源 我们搞python的,肯 ...
- python pip 换源
title: pip 换源 author: 杨晓东 permalink: pip-换源 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - demo ...
- [Python]Pip换源以及设置代理
Install python package with proxy sudo pip install python-magic --proxy=https://your-proxy.com 2.No ...
- python pip换源方法
以下资料来源于网络: pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ust ...
- python虚拟环境 + 批量pip + 换源
python虚拟环境 + 批量pip + 换源 虚拟环境 曾经我是一个小白,不管运行什么项目都用一个环境,后来项目多了,有的是Django1.11的有的是Django2的,有的项目只能在3.6上运行, ...
- pip安装使用详解【转】
转自:pip安装使用详解 – 运维生存时间http://www.ttlsa.com/python/how-to-install-and-use-pip-ttlsa/ pip类似RedHat里面的yum ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl ...
- Python的logging模块详解
Python的logging模块详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志级别 日志级别指的是产生的日志的事件的严重程度. 设置一个级别后,严重程度 ...
- Python解释器换源
Python解释器换源 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿 ...
随机推荐
- 推荐一个C#轻量级矢量图形库
推荐一个轻量级矢量图形库,可用于生成 PDF.SVG.PNG等. 01 项目简介 VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 ...
- 【OpenGL ES】GLSL基础语法
1 前言 本文将介绍 GLSL 中数据类型.数组.结构体.宏.运算符.向量运算.矩阵运算.函数.流程控制.精度限定符.变量限定符(in.out.inout).函数参数限定符等内容,另外提供了一个 ...
- new idea
如何我希望将url链接作为大语言模型的输入,同时通过大模型的能力来学习与认识url网页链接中的文本.图片.语音等元素,应该怎么做? 要将URL链接作为输入来学习与识别URL中的文本.图片.语音等元素, ...
- 探索Python @dataclass的内部原理
之前写过一篇介绍Python中dataclass的文章:<掌握python的dataclass,让你的代码更简洁优雅>. 那篇侧重于介绍dataclass的使用,今天想探索一下这个有趣的特 ...
- 论文解读 原苏木素A通过靶向ACSL4/FTH1轴依赖性铁凋亡保护阿霉素诱导的心肌损伤和心功能障碍
同学们,大家好!今天给大家介绍一篇研究性论文,原苏木素A通过靶向ACSL4/FTH1轴依赖性铁凋亡保护阿霉素诱导的心肌损伤和心功能障碍,想了解这方面的同学们可以重点关注一下.这篇文章是2024年7月份 ...
- Python连接远程设备
import paramiko def content_ssh(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(parami ...
- 收藏几个常用的vue自定义组件,抄自 他人,以防丢失
在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也允许注册自定义指令.它的作用价值在于当开发人员在某些场景下需要对普通 DOM 元素进行操作. Vue自定义指 ...
- c# 设置WebBrowser的UserAgent
void SuppressScriptErrors(WebBrowser webBrowser, bool hide) { webBrowser.Navigating += (s, e) => ...
- java技术架构图
架构图有哪几种 业务架构:需求初期业务的结果和过程描述一般比较模糊,可能来自于某个老板.运营或用户的反馈.客户说海尔洗衣机洗土豆会堵,海尔立马设计专门的土豆洗衣机 业务方向往往是定方向和结果的叫战略, ...
- 安装坦克PWA3教程
全文概述 本文档提供了一份详细的教程,旨在引导读者完成坦克PWA3的安装与基本配置过程.坦克PWA3是一个综合性的平台,具备多项实用功能,如快速DNS记录管理.内网穿透及安全配置等,特别适用于自托管服 ...