如何为每个配置文件配置 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\\AppData\Roaming\pip\pip.ini 这对我有用,但将 conf 文件命名为 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 以使用代理(带身份验证)?的主要内容,如果未能解决你的问题,请参考以下文章

如何为每个文件夹配置 sublimelinter

如何为 Spring Boot RESTful Web 服务配置多级身份验证?

WCF - 如何为 NTLM 身份验证配置 netTcpBinding?

如何为 svn 配置 HTTP 代理

如何为 LDAP 和 JDBC 配置 Spring?

如何为 windows 下的 python 的 pip 工具设置代理服务器