在代理后面使用pip

时间:2013-01-04 00:22:18

标签: python proxy pip

我正在尝试在工作中使用pip。

this post的答案之一建议使用CNTLM。我按this other post安装并配置了它,但正在运行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是否设置正确,或者是否还有另一种解决方法?我知道您也可以按照here所述设置http_proxy环境变量,但我不确定要放入哪些凭据。cntlm.ini中的凭据?

31 个答案:

答案 0 :(得分:250)

使用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

答案 1 :(得分:91)

在Windows下,别忘了设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要为

设置的内容
pip install pep8

答案 2 :(得分:64)

要为Windows设置CNTLM,请按照此article进行操作。对于Ubuntu,请阅读my blog post

修改

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

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

  2. 生成哈希密码。

    Windows cntlm –c cntlm.ini –H

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

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

  4. 检查是否有效:

    Windows cntlm –M http://www.google.com

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

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

    更新:

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

答案 3 :(得分:53)

我没跟我工作。我使用https作品:

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

要更新,请添加-U。

答案 4 :(得分:39)

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

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

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

答案 5 :(得分:27)

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

pip install --proxy proxyserver:port requests

答案 6 :(得分:27)

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

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

答案 7 :(得分:19)

$ pip --proxy http://proxy-host:proxy-port install packagename

这对我有用

答案 8 :(得分:13)

根据我们的安全政策我可能不会使用https 和pypi,SSL检查重写证书,它会打破www.python.org的内置pip安全性。中间人是网络管理员。

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

bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"

答案 9 :(得分:12)

在Windows 7中:

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

即:

pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv

答案 10 :(得分:11)

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

如果我在通过公司代理找到方法时遇到很多麻烦,我会通过手机连接到网络(如果我有无线热线,如果没有wifi连接线,则可以快速pip install

可能不适用于所有设置,但应该让大多数人接受。

答案 11 :(得分:11)

打开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

答案 12 :(得分:7)

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

  1. 修改cntlm.ini
  2. 修改“用户名”,“域名”,“密码”字段
  3. 使用您的代理设置添加“代理”行:server:port
  4. 确保“NoProxy”行集成“localhost”(默认情况下为此)
  5. 请注意默认端口:3128
  6. 保存,就是这样。
  7. 要测试它是否有效,只需启动一个新的命令行工具,然后尝试:

    pip install django --proxy=localhost:3128
    

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

答案 13 :(得分:7)

在Ubuntu 14.04 LTS中

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

干杯

答案 14 :(得分:5)

在“高级系统设置”中设置环境变量。 在命令提示符中,它应该像这样:

  

C:\ Windows \ system32&gt; echo%http_proxy%

     

http://username:passowrd@proxy:port

     

C:\ Windows \ system32&gt; echo%https_proxy%

     

http://username:password@proxy:port

稍后,简单 pip install whatEver应该有用。

答案 15 :(得分:5)

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

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip

答案 16 :(得分:4)

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

pip install Flask-MongoAlchemy --proxy="http://example.com:port"**

答案 17 :(得分: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...

正如http://pypi.python.org/simple/重定向到https://pypi.python.org/simple,但pip的错误并未告诉您。

答案 18 :(得分:2)

我也不是这方面的专家,但我通过在〜/ .bashrc文件中设置all_proxy变量来实现它。要打开~/.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的本地安装&#39;文件夹中。

P.S。 - 我正在使用Ubuntu 16.04。

答案 19 :(得分:2)

警告,“pip search”命令有一些非常糟糕的事情。 无论传递方式如何,搜索命令都不使用代理设置。

我试图找出问题只尝试“搜索”命令,并发现这篇文章详细解释了该错误:source

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

答案 20 :(得分: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
    

答案 21 :(得分:2)

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

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

set http_proxy=http://username:password@proxyserver:proxyport
set https_proxy=https://username:password@proxyserver:proxyport

答案 22 :(得分:1)

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

答案 23 :(得分: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是端口

答案 24 :(得分:1)

在带有身份验证的工作代理后面使用点,请注意,在某些操作系统中,使用用户名和密码指定代理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

答案 25 :(得分:0)

这对我有用:

pip --proxy proxy url:port command package

答案 26 :(得分:0)

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

&#34;规则&#34; =&GT;单击&#34;自动验证&#34;

示例:pip install virtualenv -proxy 127.0.0.1:8888

只需打开提示并使用。

https://github.com/pypa/pip/issues/1182搜索&#34; voltagex&#34; (2015年5月22日评论)

答案 27 :(得分:0)

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

[全局]

proxy = http://YouKnowTheRest

以及您的代理详细信息。这将为pip永久配置代理。

答案 28 :(得分:0)

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

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

    [global]
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org 
    

答案 29 :(得分: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/ for Python2.7

sudo pip3 install PACKAGENAME --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/ for 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

答案 30 :(得分:-1)

我可以通过运行:

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

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