290

我正在尝试在工作中使用代理后面的 pip。

这篇文章的答案之一建议使用CNTLM。我按照其他帖子安装并配置了它,但运行cntlm.exe -c cntlm.ini -I -M http://google.com给出了错误Connection to proxy failed, bailing out

我也尝试过pip install -–proxy=user:pass@localhost:3128(默认的 CNTLM 端口),但这引发了Cannot fetch index base URL http://pypi.python.org/simple/. 很明显,代理出了点问题。

有谁知道如何更明确地检查 CNTLM 是否设置正确,或者是否有另一种解决方法?我知道您也可以按照此处http_proxy所述设置环境变量,但我不确定要输入什么凭据。来自?cntlm.ini

4

32 回答 32

277

使用 Ubuntu,我无法让代理选项像宣传的那样工作——因此以下命令不起作用

sudo pip --proxy http://web-proxy.mydomain.com install somepackage

但是导出https_proxy环境变量(注意它https_proxy不是http_proxy)起到了作用:

export https_proxy=http://web-proxy.mydomain.com

然后

sudo -E pip install somepackage
于 2013-11-13T19:44:27.273 回答
95

Windows下别忘了设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要设置什么

pip install pep8
于 2013-05-03T10:50:07.963 回答
77

要为 Windows 设置 CNTLM,请遵循本文。对于 Ubuntu,请阅读我的博文

编辑:

基本上,要在任何平台上使用 CNTLM,您需要设置您的用户名和散列密码,然后再将http://127.0.0.1:3128其用作父代理的代理。

  1. 编辑配置并添加重要信息,如域、用户名、密码和父代理。

  2. 生成哈希密码。

    视窗 cntlm –c cntlm.ini –H

    Ubuntu/Linux cntlm -v -H -c /etc/cntlm.conf

  3. 从配置中删除纯文本密码并将其替换为生成的密码。

检查是否工作:

视窗 cntlm –M http://www.google.com

Ubuntu/Linux sudo cntlm -M http://www.google.com/

有关更详细的说明,请参阅上面的链接。

更新:

为了完整起见,我最近能够在 Windows 中配置和使用 CNTLM。由于我们的代理,我在 Kindle for PC 的同步过程中遇到了一个问题,安装和配置 CNTLM for Windows 为我解决了这个问题。有关详细信息,请参阅我的文章

于 2013-01-07T00:02:28.070 回答
66

它不适合我。我不得不在工作中使用https

pip install --proxy=https://user@mydomain:port somepackage

为了更新,添加 -U。

于 2015-11-09T14:12:03.183 回答
47

您可以通过将您公司的根证书添加到您的 site-packages/pip 文件夹中的 cacert.pem 文件来继续通过 HTTPS 使用 pip。然后通过将以下行添加到 ~/pip/pip.conf(或 ~\pip\pip.ini,如果您在 Windows 上)来配置 pip 以使用您的代理:

[global]
proxy = [user:passwd@]proxy.server:port

就是这样。无需使用第三方软件包或放弃 HTTPS(当然,您的网络管理员仍然可以看到您在做什么)。

于 2014-03-06T15:51:22.973 回答
27

窗户;在命令提示符中将您的代理设置为
set HTTP_PROXY=domain\username:password@myproxy:myproxyport

例子:
set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880

于 2013-01-04T02:46:17.110 回答
26

这对我有用(通过 CMD 在 Windows 上):

pip install --proxy proxyserver:port requests
于 2016-06-08T08:51:25.303 回答
21
$ pip --proxy http://proxy-host:proxy-port install packagename

这对我有用

于 2018-05-02T14:40:08.683 回答
14

根据我们的安全政策,我可能不会将 https与 pypi 一起使用,SSL-inspection 会重写证书,它会破坏 pip 对 www.python.org 的内置安全性。中间的人是网络管理员。

所以我需要使用普通的 http。为此,我需要覆盖系统代理以及默认的 pypi:

bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"
于 2013-05-28T09:24:36.803 回答
13

打开 Windows 命令提示符。

设置代理环境变量。

set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port

在同一 Windows 命令提示符下使用代理安装 Python 包。

pip install --proxy="user:password@proxy_ip:port" package_name
于 2018-09-06T11:44:53.720 回答
12

手机作为移动热点/USB 网络共享

如果我很难通过公司代理找到方法,我会通过我的手机连接到网络(如果我有 wifi,则为无线热点,如果没有,则使用 USB 系绳)并快速执行pip install.

可能不适用于所有设置,但应该让大多数人在紧要关头。

于 2014-01-08T04:15:37.070 回答
12

在 Windows 7 中:

pip install --proxy DOMAIN\user:password@proxyaddress:port package

IE:

pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv
于 2017-02-15T11:26:15.760 回答
8

在 Ubuntu 14.04 LTS 中

   sudo pip --proxy http://PROXYDOM:PROXYPORT install package

干杯

于 2015-09-29T17:53:45.057 回答
7

我遇到了同样的问题:在工作中使用身份验证的公司代理后面,我无法使用 pip 以及 Sublime Text 2(嗯,它与我的代理设置的自定义设置一起使用)。对于 pip(我将在 git 上尝试),我解决了安装 cntlm 代理的问题。配置非常简单:

  1. 编辑cntlm.ini
  2. 编辑“用户名”、“域”、“密码”字段
  3. 使用您的代理设置添加“代理”行:server:port
  4. 确保“NoProxy”行集成了“localhost”(默认情况下如此)
  5. 注意默认端口:3128
  6. 保存,就是这样。

要测试它是否有效,只需启动一个新的命令行工具,然后尝试:

pip install django --proxy=localhost:3128

这对我有用。希望这会帮助你。

于 2013-04-24T13:43:38.617 回答
6

在高级系统设置中设置环境变量。在命令提示符下,它的行为应该是这样的:

C:\Windows\system32>echo %http_proxy%

http://username:passowrd@proxy:port

C:\Windows\system32>echo %https_proxy%

http://username:password@proxy:port

后来,Simply pip install whatEver应该可以工作。

于 2016-06-17T08:13:57.833 回答
6

我可以通过运行来实现这一点:

pip install --proxy=http://user:pass@your.proxy.com:3128 package==version

我在公司代理中使用 Python 3.7.3。

于 2019-04-24T16:13:27.913 回答
5

如果您想通过代理升级 pip,可以使用(例如在 Windows 中):

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip
于 2018-03-27T16:45:42.497 回答
4

对于 Windows 用户:如果要安装 Flask-MongoAlchemy,请使用以下代码

pip install Flask-MongoAlchemy --proxy="http://example.com:port"**
于 2015-06-08T06:34:52.637 回答
4

在具有身份验证的工作代理后面使用 pip,请注意,在使用用户和密码指定代理 url 时,某些操作系统需要引用:

pip install <module> --proxy 'http://<proxy_user>:<proxy_password>@<proxy_ip>:<proxy_port>'

文档:https ://pip.pypa.io/en/stable/user_guide/#using-a-proxy-server

例子:

pip3 install -r requirements.txt --proxy 'http://user:password@192.168.0.1:1234'

例子:

pip install flask --proxy 'http://user:password@192.168.0.1:1234'

代理也可以在 pip.ini 中手动配置。例子:

[global]
proxy = http://user:password@192.168.0.1:1234 

文档:https ://pip.pypa.io/en/stable/user_guide/#config-file

于 2020-03-20T12:36:28.783 回答
3

如果您通过代理连接到 Internet,则运行某些命令可能会出现问题。

在命令提示符下设置代理配置的环境变量如下:

set http_proxy=http://username:password@proxyserver:proxyport
set https_proxy=https://username:password@proxyserver:proxyport
于 2019-09-17T09:12:58.297 回答
2

只在本地做怎么样?您很可能可以通过浏览器从 https 源下载

  1. 下载你的模块文件(mysql-connector-python-2.0.3.zip /gz...等)。
  2. 提取它并转到 setup.py 所在的提取目录并调用:

    C:\mysql-connector-python-2.0.3>python.exe setup.py install
    
于 2015-04-09T15:05:47.907 回答
2

在 CentOS(实际上我认为所有 linux 发行版都相似)运行

env|grep http_proxy

env|grep https_proxy

检查这些命令的输出(它们应该包含您的代理地址)。

如果输出为空或具有不正确的值,请修改它们,例如:

export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080

现在尝试使用 pip 获取并安装一些包:

pip --proxy http://10.1.1.1:8080 install robotframework

实际上我从来没有遇到过它不起作用的情况。对于某些系统,您需要成为 root(sudo 是不够的)。

于 2015-07-15T10:37:09.960 回答
2

警告,“pip search”命令有一些不好的地方。搜索命令不使用代理设置,无论其传递方式如何。

我试图找出问题只尝试“搜索”命令,并发现这篇文章详细解释了该错误:https ://github.com/pypa/pip/issues/1104

我可以用 python 2.7.9 在 Debian 8 上用 pip 1.5.6 确认该错误仍然存​​在。“pip install”命令就像一个魅力。

于 2015-07-28T15:19:12.877 回答
2

我得到了错误:

chris@green:~$ sudo http_proxy=http://localhost:3128 pip install django==1.8.8 
Downloading/unpacking django==1.8.8
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement django==1.8.8
No distributions at all found for django==1.8.8
Storing complete log in /home/chris/.pip/pip.log

(代理服务器的端口是转发到的 ssh 端口localhost:3128)。

我必须同时设置 http 和 https 代理才能使其工作:

chris@green:~$ sudo http_proxy=http://localhost:3128 https_proxy=http://localhost:3128 pip install django==1.8.8
Downloading/unpacking django==1.8.8
  Downloading Django-1.8.8.tar.gz (7.3Mb): 7.3Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755
    changing mode of /usr/local/bin/django-admin.py to 755
    Installing django-admin script to /usr/local/bin
Successfully installed django
Cleaning up...

ashttp://pypi.python.org/simple/重定向到https://pypi.python.org/simplebutpip的错误不会告诉你。

于 2016-01-29T13:53:35.680 回答
2

我也不是这方面的专家,但我通过all_proxy在 ~/.bashrc 文件中设置变量使其工作。~/.bashrc要从终端打开文件并编辑它,请运行以下命令,

gedit ~/.bashrc &

在文件末尾添加以下内容,

export all_proxy="http://x.y.z.w:port"

然后打开一个新终端或在同一终端中运行以下命令,

source ~/.bashrc

仅仅设置http_proxyhttps_proxy变量对于简单的使用是不够的pip install somepackage。虽然以某种方式sudo -E pip install somepackage有效,但这给了我一些问题,以防我在我的用户文件夹中使用本地安装的 Anaconda。

PS - 我使用的是 Ubuntu 16.04。

于 2017-05-20T12:41:54.243 回答
1

这对我有用:

pip --proxy proxy url:port command package
于 2017-03-30T16:44:39.213 回答
1

设置以下环境变量:export PIP_PROXY=http://web-proxy.mydomain.com

于 2018-12-13T06:58:16.393 回答
1

如果您使用的是 Linux,请以 root 身份:

env https_proxy=http://$web_proxy_ip:$web_proxy_port pip install something

当您使用 env 时,它会为当前执行命令 pip install 导出变量 https_proxy。

$web_proxy_ip 是您的代理的主机名或 IP $web_proxy_port 是端口

于 2019-01-16T20:48:13.257 回答
0

我使用“Fiddler”( https://www.telerik.com/download/fiddler)解决了 Windows 中 PIP 的问题。下载并安装后,执行以下操作:

“规则” => 点击“自动验证”

示例: pip install virtualenv -proxy 127.0.0.1:8888

只需打开提示并使用。

https://github.com/pypa/pip/issues/1182搜索“voltagex”(2015 年 5 月 22 日评论)

于 2018-05-23T17:40:53.880 回答
0

对于 Windows 转到 C:/ProgramData/pip/pip.ini,然后设置

[全球的]

代理 = http://YouKnowTheRest

与您的代理详细信息。这会永久配置 pip 的代理。

于 2018-11-16T15:11:10.567 回答
0

一个更简单的方法可能是:

  1. 在您的目录中创建一个名为“pip”的文件夹$HOME
  2. 在步骤 1 中创建的目录中创建一个名为“pip.ini”(Windows)或“pip.conf”(Linux)的文件
  3. 在 pip.ini/pip.conf 下复制并粘贴以下行:

    [global]
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org 
    
于 2019-09-25T05:57:50.070 回答
0
  1. 对于 PIP 安装:
ex:PORT = 9090
ex:PROXY_SERVER = stackoverflow
USERNAME:your user id
PASSWORD: your password

sudo pip2 install PACKAGENAME --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/ 对于 Python2.7

sudo pip3 install PACKAGENAME --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/ 对于 Python3.5

例子:

sudo pip2 install pandas --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/
  1. apt-get安装_
sudo http_proxy=http://USERNAME:PASSWORD@PROXY_SERVER:PORT/ apt-get install PACKAGENAME

例子:

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get install tensorrt

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get update
于 2019-11-08T10:19:56.807 回答