如何为每个配置文件配置 PIP 以使用代理(带身份验证)?
Posted
技术标签:
【中文标题】如何为每个配置文件配置 PIP 以使用代理(带身份验证)?【英文标题】:How to configure PIP per config file to use a proxy (with authentification)? 【发布时间】:2017-09-14 08:15:17 【问题描述】:过去,我曾经设置环境变量 http_proxy 和 https_proxy(使用用户 + 密码)以在公司代理后面使用 Pip(在 Windows 上)。但最近我需要告诉 Pip 在不设置环境变量的情况下使用代理,因为这与 git 配置和 SSL 证书相冲突,我只能通过删除代理的环境变量来工作。
幸运的是,您可以使用 pip.ini 文件配置 PIP,如下所述:https://pip.pypa.io/en/stable/user_guide/#config-file
我自己的问题的详细答案如下。
【问题讨论】:
【参考方案1】:以下是如何在 pip 的配置文件 (pip.ini) 中配置代理(使用身份验证)的步骤
-
(如果它不存在)创建一个名为“pip”的文件夹,并在其中创建一个名为“pip.ini”的文件,如下所述:https://pip.pypa.io/en/stable/user_guide/#config-file(位置名称可能因平台而异 - 例如在 Windows 上是 % APPDATA%\pip\pip.ini)
编辑 pip.ini 文件并添加
[global]
proxy = http://user:password@proxy_name:port
就是这样!
带身份验证的代理示例(用户+密码):
代理 = http://butch:secret@proxyname:1234
proxyname 也可以是 IP 地址
没有授权的代理示例:
代理 = http://proxyname:1234
【讨论】:
谢谢,这解决了我的问题...我不需要用户名或密码,只需要代理 IP。 在cmd中,是否只需要写“pip install requests”?会自动检查ini吗?我似乎无法让它工作。 在 Windows 10 中,路径为:C:\Users\pip.conf
而不是文档所说的 pip.ini
(使用 ubuntu 18.04)
对了,设置完这个配置文件后pip install...
命令现在是什么样子的?【参考方案2】:
为了在终端中添加代理选项,以下行为我解决了问题:
pip install package_name_here --proxy https://user_name:password@proxyname:port
【讨论】:
【参考方案3】:安装包时需要设置代理选项。 示例:
pip install --proxy userid:password@proxy.domain.com:yourport
【讨论】:
【参考方案4】:如果您尝试安装的软件包有依赖关系,最好为系统范围的配置创建 pip.ini,在 windows 中您可以在 powershell 中执行此操作:
mkdir c:\programdata\pip\
new-item c:\programdata\pip\pip.ini
并将其添加到您的 pip.ini
[global]
proxy = http://domain\user:pwd@proxy_hostname_or_ip:port
然后一切正常,因为 HTTP_PROXY 变量对我不起作用。
确保在 VSCode 中将文件保存为 ansi 或 windows1252,因为 UTF 文件无法正确读取。
【讨论】:
Pip 使用前缀为PIP_
的变量。其余的是带有下划线的大写选项名称。在 Unix 上:export PIP_PROXY=...
在 Windows 上:set PIP_PROXY=...
--- 请参阅 pip.pypa.io/en/stable/user_guide/#environment-variables【参考方案5】:
简单一点:
pip config set global.proxy http://host:port
它会自动保持设置
Writing to C:\Users\username\AppData\Roaming\pip\pip.ini
【讨论】:
我在用 pyenv 激活我的 virtualenv 后使用了这个。已经为这个环境创建了一个配置,它解决了我的 corp 代理问题。谢谢。以上是关于如何为每个配置文件配置 PIP 以使用代理(带身份验证)?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Spring Boot RESTful Web 服务配置多级身份验证?