使用CNTLM代理后的pip

我正试图在工作中通过代理使用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?

770111 次浏览
< p >窗口;在命令提示符中将代理设置为
set HTTP_PROXY=domain\username:password@myproxy:myproxyport < / p >

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

要为windows设置CNTLM,请遵循文章。对于Ubuntu,请阅读我的博客

编辑:

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

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

  2. 生成hash密码。

    窗户 cntlm –c cntlm.ini –H

    Ubuntu Linux / cntlm -v -H -c /etc/cntlm.conf < / p >

  3. 从配置中删除纯文本密码,并用生成的密码替换它们。

检查是否工作:

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

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

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

更新:

为了完整起见,我最近能够在Windows中配置和使用CNTLM。我在PC版Kindle的同步过程中遇到了一个问题,因为我们的代理,安装和配置CNTLM for Windows为我解决了这个问题。更多细节请参考我的文章

我也遇到了同样的问题:在一个具有认证的公司代理的背后,我不能有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
这招对我很管用。

.

.

在Windows下不要忘记设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要设置什么

pip install pep8

在pypi的安全策略我可能不会使用https下,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"

在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

手机作为移动热点/USB绑定

如果我很难找到通过公司代理的方法,我通过我的手机连接到网络(如果我有wifi,无线热点,如果没有USB绳),并做一个快速pip install

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

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

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

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

在当地做怎么样?大多数情况下,您可以通过浏览器从https源下载

    下载模块文件(mysql-connector-python-2.0.3.zip /gz…) 等等)。李< / >
  1. 提取它,并进入setup.py所在的提取目录 又叫:< / p >

    C:\mysql-connector-python-2.0.3>python.exe setup.py install
    

对于windows用户:如果你想安装Flask-MongoAlchemy,那么使用下面的代码

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

在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

事实上,我从来没有遇到过这样的案例。对于某些系统,您需要是根用户(sudo是不够的)。

警告,“pip search”命令有非常糟糕的事情。 搜索命令不使用代理设置,不管它是如何传递的

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

我可以确认在Debian 8上使用python 2.7.9的pip 1.5.6仍然存在错误。

. pip install命令非常有用

在Ubuntu 14.04 LTS中

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

干杯

这对我不起作用。我不得不在工作中使用https:

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

为了更新,添加-U。

我得到了错误:

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的错误没有告诉你。

这对我来说很有效(在Windows上通过CMD):

pip install --proxy proxyserver:port requests

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

C:\Windows\ system32系统> % http_proxy %回响

http://username:passowrd@proxy:port

C:\Windows\ system32系统> % https_proxy %回响

http://username:password@proxy:port

稍后,简单

. pip install whatEver应该工作

Windows 7系统:

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

例如:

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

这是对我有效的方法:

pip --proxy proxy url:port command package

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

gedit ~/.bashrc &

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

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

然后要么打开一个新终端,要么在同一个终端上运行following,

source ~/.bashrc

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

附注:我使用的是Ubuntu 16.04。

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

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip
$ pip --proxy http://proxy-host:proxy-port install packagename

这对我来说很管用

我用“提琴手”(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日)

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

如果是windows,请到C:/ProgramData/pip/pip.ini,然后设置

(全球)

proxy = http://YouKnowTheRest

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

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

如果你使用的是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是Port

我可以通过运行:

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

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

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

在命令提示符中设置代理配置的环境变量,具体操作如下:

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

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

  1. 在你的$HOME目录中创建一个名为“pip”的文件夹。
  2. 在该目录下创建一个名为“pip.ini”(Windows)或“pip.conf”(Linux)的文件 在步骤1
  3. 中创建
  4. < p >复制,将以下代码粘贴到pip.ini/pip.conf文件下面:

    [global]
    trusted-host = pypi.python.org
    pypi.org
    files.pythonhosted.org
    
  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

在带有身份验证的工作代理后使用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'

Proxy也可以在pip.ini中手动配置。 例子:< / p >

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

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

windows 2022年:

我知道有很多答案,几乎所有其他关于pipbehind a proxy的问题都是指这个问题:

所以在我看来,一方面是代理的问题,这在下面的问题中得到了回答。

pip install --proxy=https://<windowsuser>:<pw>@<proxy>:port package

之后,你必须处理SSL证书。您必须添加可信源。通常他们站在Error message。下面是我安装例如Django的解决方案:

pip install Django --proxy http://windowsuser:password@proxy:port --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org