Windows 8下Python3.6+pip10.0.1无法通过企业防火墙从PyPI安装wheel包
解决企业防火墙环境下pip无法联网安装包的问题
这问题我在企业内网环境里踩过好几次坑!你遇到的WinError 10061本质就是公司防火墙拦截了pip的网络请求,导致它连不上PyPI服务器。下面给你几个实用的解决办法,按需求选就行:
1. 临时配置代理(单次生效)
如果只是偶尔安装包,直接在pip命令后加代理参数最省事:
- 知道公司代理地址和端口的话,执行:
pip install sql --proxy http://你的代理地址:端口号 - 如果代理需要用户名密码认证,格式改成这样:
注意:如果密码里有pip install sql --proxy http://用户名:密码@你的代理地址:端口号@、&这类特殊字符,得先做URL编码(比如@换成%40),不然会解析出错。
2. 永久配置代理(一劳永逸)
不想每次输代理参数的话,给pip设置永久代理,有两种方式:
方式一:修改pip配置文件
Windows下pip的用户级配置文件路径是%APPDATA%\pip\pip.ini,如果没有这个文件夹和文件,自己新建就行:
- 打开记事本,写入以下内容(替换成你的代理信息):
[global] # 基础代理配置 proxy = http://你的代理地址:端口号 # 若需要认证,替换成下面这行 # proxy = http://用户名:密码@你的代理地址:端口号 - 保存文件为
pip.ini,放到%APPDATA%\pip\目录下(%APPDATA%一般是C:\Users\你的用户名\AppData\Roaming)。
方式二:设置系统环境变量
通过系统环境变量让所有网络工具都用代理,包括pip:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」栏点击「新建」,添加两个变量:
- 变量名:
HTTP_PROXY,变量值:http://你的代理地址:端口号 - 变量名:
HTTPS_PROXY,变量值:和上面一样(因为现在PyPI主要用HTTPS) - 要是需要认证,变量值改成
http://用户名:密码@你的代理地址:端口号
- 变量名:
- 保存后重启命令提示符/PowerShell,再执行pip命令就会自动用代理了。
3. 进阶:使用企业内部PyPI镜像
很多公司会搭建内部的PyPI镜像源,要是你知道地址,换成这个源会更稳定,还能绕过部分防火墙限制:
- 临时使用:
pip install sql -i http://内部镜像地址/simple/ --trusted-host 内部镜像地址 - 永久设置:在刚才的
pip.ini里添加一行:[global] index-url = http://内部镜像地址/simple/ proxy = http://你的代理地址:端口号
最后排查
如果以上方法都不行,大概率是公司防火墙有特殊限制(比如需要PAC文件、Socks代理),这时候最好找IT部门确认代理的具体参数,比如是否需要特定端口、是否有白名单限制等。
内容的提问来源于stack exchange,提问作者Mchief
相关产品推荐
相关产品推荐

