公司内网访问外网是通过代理。在公司本上装完python发现不能通过pip装包,配上国内pip源也不行,遂想到是代理的问题。
pip配永久代理适用于:
-
访问外网均通过代理;
-
拿到了公司的代理服务器地址和端口。可通过IE -> Internet Options -> Connections -> LAN Settings 查看,如果是用的.pac脚本,还需要分析;
-
不想每次pip install时都用临时配置:
pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple --proxy="myproxyname.mydomain.com:port" --trusted-host pypi.tuna.tsinghua.edu.cn
pip配置文件位置
Windows: (可能在以下三个位置之一,应该是取决于安装方式)
-
C:\ProgramData\pip\pip.ini(全局)
-
C:\Users\YOURUSERNAME\pip\pip.ini(单个用户配置)
-
C:\Users\YOURUSERNAME\AppData\Roaming\pip\pip.ini(单个用户配置)
我是仅为当前用户安装的(无管理员权限),pip.ini在 C:\Users\YOURUSERNAME\AppData\Roaming\pip\pip.ini
Linux:
~/.pip/pip.conf
若没有,可以用以下命令创建
mkdir -p ~/.pip && touch ~/.pip/pip.conf
设置永久代理和源
可以先用命令行加一个pip源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这样做的好处是它能返回一个配置文件的地址,接下来直接去改这个配置文件就好:
H:\>pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\henyang\AppData\Roaming\pip\pip.ini
写配置文件
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
proxy=http://hostname.example.com:port
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
配置完成后,使用pip -v config list命令能加载出来所配置的内容即配置成功
H:\>pip -v config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
global.proxy='http://hostname.example.com:3128'
install.trusted-host='pypi.tuna.tsinghua.edu.cn'
常用国内源
清华:https://pypi.tuna.tsinghua.edu.cn/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/