Mac环境下pip安装Python包遇代理及SSL证书问题求助
公司Mac环境下pip装库的代理与SSL问题解决方案
一、代理配置疑问解答
1. set和export的区别
set是Windows命令行的环境变量设置命令,Mac使用类Unix shell(bash/zsh),对应的环境变量设置命令是export,仅对当前shell会话生效。若要永久生效,需把export命令写入~/.bash_profile(bash环境)或~/.zshrc(zsh环境)文件。
2. 域账户+特殊字符密码的代理配置
- 域账户中的反斜杠
\必须做URL编码,替换为%5C;密码里的特殊字符(如@、&、!等)也需URL编码:@→%40,!→%21,空格→%20。 - 正确格式示例:
http://domain%5Ca123456:pass%40%21word@proxy.server:8080
3. 密码以@结尾的代理格式
- 直接写
http://myname:haslo@@proxy.server:port是错误的,第一个@会被解析为用户名与密码的分隔符,导致末尾的@被识别为代理地址的一部分,引发连接错误。 - 正确做法是把密码末尾的@编码为
%40,格式应为:http://myname:haslo%40@proxy.server:port
二、SSL证书错误的修复步骤
1. 获取公司代理的根证书
公网的cacert.pem不适用公司内部的自签名代理证书,需导出公司代理的根证书:
- 用浏览器打开任意HTTPS网站,点击地址栏的锁图标,进入证书详情页,将根证书导出为PEM格式(保存为
company-proxy-cert.pem)。
2. 给pip指定公司证书
- 临时执行:确保证书路径正确,若证书在当前目录,执行命令:
pip install pytest --cert ./company-proxy-cert.pem - 永久配置:创建或修改
~/.config/pip/pip.conf文件,添加以下内容:[global] proxy = http://编码后的代理地址:端口 cert = /证书的绝对路径/company-proxy-cert.pem
3. 额外排查方向
- 确认HTTP和HTTPS代理都已正确设置:
export http_proxy="http://编码后的代理地址:端口" export https_proxy="http://编码后的代理地址:端口" - 询问IT部门是否有内部PyPI镜像源,使用内部源会更稳定,示例命令:
pip install pytest -i http://内部镜像地址/simple --trusted-host 内部镜像地址
内容的提问来源于stack exchange,提问作者mac blanco
相关产品推荐
相关产品推荐

