<p>pip não respeita o proxy ao instalar pacotes do arquivo de requisitos</p>

Criado em 8 mai. 2014  ·  86Comentários  ·  Fonte: pypa/pip

Estou usando pip 1.5.5 em python 2.7.6, CentOS 6.5 x86_64. Python é compilado e instalado em /usr/local/. Ao tentar instalar pacotes do arquivo de requisitos, os primeiros 12 pacotes estão sendo baixados via proxy, mas depois disso o pip tenta se conectar diretamente ao servidor em vez do proxy e a solicitação falha.

$ export https_proxy= http://proxy :8080
$ /usr/local/bin/pip2.7 install -r reqs.txt

Isso resulta no download dos primeiros 12 pacotes via proxy, mas o próximo é uma solicitação HTTPS direta ao servidor pypi. Eu validei isso por meio de rastreamento de pacotes e logs de proxy.

Observe que a instalação funciona perfeitamente usando /usr/bin/pip, v1.3.1.

Pensamentos?

proxy auto-locked

Comentários muito úteis

eu corro
pip install -r requirements.txt --proxy=<proxy address>

meu requirements.txt contém 20 entradas, ele instala as 16 primeiras sem problemas e depois lança o erro:
Timeout: (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x1f70650>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

Curiosamente, ele sempre falha ao instalar o pacote 16. package ( django-session-csrf==0.5 ), mas se eu instalar o pacote manualmente usando pip (não através do arquivo requirements.txt), ele funciona bem. Se eu executar pip install -r requirements.txt --proxy=<proxy address> novamente depois disso, obviamente, ele pula django-session-csrf , mas instala o pacote a seguir sem problemas e falha com o erro de tempo limite no pacote depois disso.

Aumentar o tempo limite para algo como 300 não ajuda.

Todos 86 comentários

É aquele que é uma solicitação HTTPS direta para PyPI em um setup_requires em algum lugar?

Não, eu não penso assim. Eu verifiquei no diretório /tmp/pip_built_root. grep'd para 'setup_requires' em todos os arquivos setup.py/cfg. Nenhuma coisa. A instalação falhou conforme o esperado.

Deixe-me saber se há uma maneira diferente de verificar isso.

É um pacote específico que está entrando em contato com o PyPI?

Aqui está o conteúdo de reqs.pip

requests==1.2.3
Flask==0.10.1
Flask-Login==0.2.7
Flask-Security==1.6.9
Flask-SQLAlchemy==1.0
Flask-Script==0.6.7
Flask-Principal==0.4.0
Flask-WTF==0.9.1
boto==2.3.0
suds==0.4
xmltodict==0.8.6
simplejson==3.3.3 
stripe==1.12.2
raven==4.1.1
Flask-Migrate==1.2.0
alembic==0.6.3

A instalação falha na distribuição. Se eu comentar simplejson, ele falha no raven. Aqui está o log de falhas. Observe que o tempo limite é devido ao firewall descartando pacotes sendo enviados diretamente para o servidor pypi.

Downloading/unpacking stripe==1.12.2 (from -r /var/www/html/backend/reqs.pip (line 21))
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/req.py", line 1197, in prepare_files
    do_download,
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/req.py", line 1375, in unpack_url
    self.session,
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/download.py", line 546, in unpack_http_url
    resp = session.get(target_url, stream=True)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/_vendor/requests/sessions.py", line 395, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/download.py", line 237, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/_vendor/requests/sessions.py", line 383, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/_vendor/requests/sessions.py", line 486, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.5-py2.7.egg/pip/_vendor/requests/adapters.py", line 387, in send
    raise Timeout(e)
Timeout: (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x1f70650>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

Estou com o mesmo erro. Curiosamente, ele instala vários pacotes do arquivo de requisitos sem problemas, mas falha com o erro VerifiedHTTPSConnection Timeout.

Não consegui encontrar uma solução para isso. Como solução alternativa, usei proxychains para impor o proxy transparente.

Seria incrível se pudéssemos obter um conjunto mais simples de etapas para reproduzir isso

eu corro
pip install -r requirements.txt --proxy=<proxy address>

meu requirements.txt contém 20 entradas, ele instala as 16 primeiras sem problemas e depois lança o erro:
Timeout: (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x1f70650>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

Curiosamente, ele sempre falha ao instalar o pacote 16. package ( django-session-csrf==0.5 ), mas se eu instalar o pacote manualmente usando pip (não através do arquivo requirements.txt), ele funciona bem. Se eu executar pip install -r requirements.txt --proxy=<proxy address> novamente depois disso, obviamente, ele pula django-session-csrf , mas instala o pacote a seguir sem problemas e falha com o erro de tempo limite no pacote depois disso.

Aumentar o tempo limite para algo como 300 não ajuda.

Estou enfrentando o mesmo problema no CentOS 6.4 com Python 2.6.6 e pip 1.5.6. Alguma ideia de como obter uma solução alternativa?

Parece que é sempre o 15º item no arquivo de requisitos. Se eu comentar itens anteriores, ele expira em um item posterior ao anterior...

Tentei com pip 1.5.4 e 1.5.6 no Ubuntu 14.04 LTS

@pcraston poderia ser algum tipo de limitação de taxa no seu proxy? Com o arquivo de requisitos o pip está enviando muitos pedidos em um curto período de tempo?

Acabei de falar com nosso gerente de TI, ele diz que não há limite de taxa em nosso proxy. Mas parece estranho!

Sua não parece ser aplicada por procuração. Se você monitorar a saída
tráfego, você verá que, por algum motivo, o pip começa a enviar solicitações diretas
para o servidor web. Portanto, as solicitações expiram ou são
recusado (dependendo da configuração da rede).

Posso confirmar que tenho o mesmo problema. Instalando o threatstream/mhn com o arquivo de requisitos.

Isso parece ser um bug de solicitações, redirecionei isso para upstream aqui: https://github.com/kennethreitz/requests/issues/2110

Ou talvez urllib3.

Ok, as solicitações trouxeram isso de volta para nós, parece que pode ser um problema PyPI/Fastly.

As pessoas com esse problema podem executar esse script com solicitações 2.3.0?

import requests
session = requests.Session()
for i in range(100):
    print(i)
    session.get("https://pypi.python.org/simple/").content

e relatar se falhar e onde falha?

Além disso, se você puder informar o nome do seu software proxy e versão ou qualquer outra informação semelhante que possamos usar para tentar reproduzir.

Além disso, se você puder ir para http://debug.fastly.com/ e postar o bloco criptografado no topo para que eu possa encaminhá-lo para o Fastly, também seria ótimo.

Ah, se o script acima falhar, você também pode tentar com https://imgur.com/ e https://google.com/

Você também pode esclarecer que não há restrição baseada em _address_ na limitação de taxa ou algo semelhante? Por exemplo, os endereços IP associados ao PyPI também estão associados a muitos outros sites que hospeda Fastly como imgur, então os proxies poderiam estar negando com base nos endereços IP?

Então eu executei o pequeno script e após 20 segundos de exibição de conteúdo, recebo o seguinte erro:

51
Traceback (última chamada mais recente):
Arquivo "", linha 3, em
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 468, em >get
return self.request('GET', url, _kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 456, em >requestresp = self.send(prep, *_send_kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 559, em sendr = adapter.send(solicitação, * kwargs)
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", linha 378, em send
aumentar ProxyError(e)
request.exceptions.ProxyError: ('Não é possível conectar ao proxy.', error(110, 'Tempo limite de conexão esgotado'))

Nosso proxy corporativo não possui limitação de taxa ou restrições baseadas em endereço.

Assim como acima, o script falhou na 52ª solicitação para pypi e imgur. O Google funcionou bem.

49
50
51
Traceback (última chamada mais recente):
Arquivo "/tmp/pypitest.py", linha 5, em
session.get("https://pypi.python.org/simple/").content
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 468, em get
return self.request('GET', url, _kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 456, na solicitaçãoresp = self.send(prep, *_send_kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 559, em sendr = adapter.send(solicitação, * kwargs)
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", linha 378, em send
aumentar ProxyError(e)
requests.exceptions.ProxyError: ('Não é possível conectar ao proxy.', error(111, 'Conexão recusada')))

O proxy está configurado para recusar caso uma conexão direta seja tentada, portanto, 111. Não há AFAIK de limitação de taxa. Além disso, posso confirmar que enfrentei a mesma situação em duas implantações de proxy diferentes - ambas squid, executando a versão 3.1.10 no centos.

Resposta de debug.fastly.com

H4sIAAAAAAAAA31SXU/bMBT9K1GeNlan+WxTKqRloYVsNFSkICZVQm7iJhaJ3dkOTUH8912HaRVi
muQH+55zj6+Pz4tZEVwQIc3TF/OSS2WemgXZtKW1xVLVByvnjTkwbyURKCoJ0/iCP9O6xuthYNnG
p3vHmRq3m5apdmpcUdZ2RheOHkb+1BBP+7Esj8bFyR/5Ouhazs2LMeYU0G2vIMKwCAf5TnZaWlF
OrUeVqqpB3i3q2mOFeVsPex06Uv3odzU019ntjUZnKyHJ/02/CuHrjArW1wS0CUM3WYDwnpKAJQY
5xVBMWdK8BoIDe4QUM/cYOLax5HQjOW8oKwESvlMdwDMe19QXFNwAyVLQBzfcryJFbrWCAj3aEUb
IqCeOb7tjcd+6DmWB8JOMBkHg7vMPspcEJ4sYQ6wTxxiXuhhk/SIZ0Q8gfVv19ie5fqB5bqu5YT+
kbQizQ7dz+f/GOUOC0ZlpZHQD7xx6HhBD8y52GNRkELvPjT+Ee4l894q+TRyUfY99szXgbmvOJUP
jKg9F486ORT2rG3e6dgGMo4nzwFZhhv9wHQxS+IVSpJkhS5/ngMgFVYtZNCMsiy5SGfnRnqdouX1
zSr6djXTnVzR7UF/1GYnsMTFV0qpsnBuUQZwA1+x0fAiStIVuskWUZqg9EeKejM1XPN9/ylvjHeQ
4K0i8r/dVOh4JjfQ+WH4vIKgkQJwCLiPbBe52mPJW5Hr50bLNImPtvE904O8mFyUmNHnPstanCki
WH/CtZEwqaiCuQy+hcOWi6aHjBXJK8ZrXh7gDlwUgkj5FprX19+sUp+UzgMAAA==

Ele também falha na 52ª solicitação para mim em https://pypi.python.org/simple/ e https://imgur.com/ (mas com um erro diferente de @shredder12 e @nullprobe - veja abaixo):

50
51

ProxyError                                Traceback (most recent call last)
<ipython-input-21-788947201a19> in <module>()
      1 for i in range(100):
      2     print (i)
----> 3     session.get("https://pypi.python.org/simple/").content
      4 

/home/vagrant/venv/local/lib/python2.7/site-packages/requests/sessions.pyc in get(self, url, **kwargs)
    393 
    394         kwargs.setdefault('allow_redirects', True)
--> 395         return self.request('GET', url, **kwargs)
    396 
    397     def options(self, url, **kwargs):

/home/vagrant/venv/local/lib/python2.7/site-packages/requests/sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert)
    381             'allow_redirects': allow_redirects,
    382         }
--> 383         resp = self.send(prep, **send_kwargs)
    384 
    385         return resp

/home/vagrant/venv/local/lib/python2.7/site-packages/requests/sessions.pyc in send(self, request, **kwargs)
    484         start = datetime.utcnow()
    485         # Send the request
--> 486         r = adapter.send(request, **kwargs)
    487         # Total elapsed time of the request (approximately)
    488         r.elapsed = datetime.utcnow() - start

/home/vagrant/venv/local/lib/python2.7/site-packages/requests/adapters.pyc in send(self, request, stream, timeout, verify, cert, proxies)
    379 
    380         except _ProxyError as e:
--> 381             raise ProxyError(e)
    382 
    383         except (_SSLError, _HTTPError) as e:

ProxyError: Cannot connect to proxy. Socket error: [Errno 110] Connection timed out.

Tudo funciona bem ao enviar solicitações para https://google.com

Proxy é a versão 3.1.20 do squid rodando no Debian

http://debug.fastly.com/ saída:

H4sIAAAAAAAAA21SXW/aMBT9K1b20nY4xIFAaNUHlgKL1AZE0q8JaXIdN1hLbOo4BVr1v+863cam
VcqDc8+5536dV2fNac517Zy+Ol9VbZxTJ+cPTeE+0tqUe5epyuk41zXXeFxwafEr9SLKkq66geuh
o1shc7WtUZKhgUvO0O38dtA/Q/r5tOe53jGacfZDrbq+Rzz4CJoKzR/VbtW1MEiPGeMbK2v4zqy6
a1OVHbrZlIJRI5RcdXc29Hn3X7gqz57OPXfUOVl1T9pn+EcOX1JZNLTgoMslLh46XLaUACg3gkKY
uASVitFyDVOjo/qpETk05RLX946BFVG25jhS0mhVAr+iOwyC534w8r1D43gimcqFLIBSvIgNANN2
czgqBewLxwtAQt8dQsEQNjQYAuUOZ6LiGpCU9L0+6ZF+ELohGfaG4WgUdm5S7yA04ypeQCcNtLKP
VG6Hmn054CnXz3CethAJA7dnK8EXHCgZrzb4bjr9sJUbqqWo1zabDEkAd/IGLTBVekt1znP7+iD1
l3gry9p1lWxPiB/gy+jeees427US9XfJzVbpH9ZhAt6yqf7V8kOE0V//IwLaklZ2zm+TpHXOkPTw
xXiJo3mSTe6yOJnOl1fjLJ4n6SS6XsbZPeSw9xX9Xk9tqGnA2M44TeNZMrlAizGEKzjKw/5dGyfz
CF8lmWWrRjNbchkvJugT+LQ0XPP8MIfaSnuyV0fpgkrx0hoREqxHwLsolo9KV20UpZw1Wpg9ujSg
8PYTBBarvWcDAAA=

Falha em 52 tentativas. Como acima funciona bem com https://google.com.

Executando o Ubuntu 12.04 em modo somente host no VirtualBox, proxy através do wingate no host do Windows 8.1.

Traceback (última chamada mais recente):
Arquivo "/tmp/test.py", linha 5, em
session.get("https://pypi.python.org/simple/").content
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 468, em get
return self.request('GET', url, _kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 456, na solicitaçãoresp = self.send(prep, *_send_kwargs)Arquivo "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", linha 559, em sendr = adapter.send(solicitação, * kwargs)
Arquivo "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", linha 378, em send
aumentar ProxyError(e)
request.exceptions.ProxyError: ('Não é possível conectar ao proxy.', error(101, 'A rede está inacessível'))

H4sIAAAAAAAAA21T70/bMBD9V6x8AhanSZ2kBMSHLsCK+FXRQpHWaXKTI7Wa2Jnjri2o//vOKaOT
hqxI8Xu+d8935zdnDjwH3Tgnb85ANcY5cXKYLQvvhTem3HiZqhzX6WcZ1JYzsDbTztxUpcvruhQZ
N0LJaWdtoS/r/+CqPP115nuJKypewLSzglntHk07Ry18jNKPDWjaL0Ba+Vv1KsqSTzuR55ODiZC5
WjXkbkxij52Syf0kDg9JHzPABGbXAq1ErOexmBxcD8a3Ny4pxQLIN8gW6pCkc60qzMlQzAuSIPaC
iJERf+Fa/A38uBu94bJYokd0AZI+jlyQHx5Tns2BpkoarUo8UPE1bQwv4cxH9pl+LZeQKm7ok+A2
Pghj1gNgAc9mLMn3SS5kpnIhCzxUvIoaicu2zDQtBVaAXg2RCSKv6zOvy5jXi1v9sahAIzMKQj8M
wpDFzEvCOOyGSRy4TyN/L/QN1NUQrS7R6yZVub3P42jPj0D/xoK3ibo2SeSFWJ3jcH9kDFVNny8v
P7XyxLUUzRy5417SQydR1OKXSq+4ziG3f59Evmu3qllbTqXzoMe69P7h3Nm6zmquRPNTglkpvbDT
KPBfLqudlm8XocTKRh8f6kpe2SsOhvTqbnzxcHcxRnDOZV5aGLc0iKjfrgAZ7JpZ4rA750JDZki/
aUQhKzt9rpNp4AZymzFJQur3qG9jMpQrWrjrBwgz6kd7x2olbW/eHKULLsVrO/nWEaxKMIYOebbA
wpBUVTWXm3/dDYa443muoWnfX2M0AD6D7w7zfZ8MuFTYKzLawT/QiTAbjBvyUpF+adT7haxW2sdN
ne0anoTMtw3NdmOwG4HtdvsHvEQyo+4DAAA=

Oi,
Eu encontrei o mesmo problema no meu ambiente Vagrant, executando CentOS 6.5 e pip 1.5.6 com nosso proxy corporativo.

Isso parece acontecer aleatoriamente em grandes requirements.txt que tento instalar com pip ao usar o proxy https.

Após investigação, descobri que o problema parece estar no PoolManager de urllib3 que está embutido na instalação do pip (_vendor/requests/packages/urllib3/poolmanager.py:ProxyManager)

Encontrei uma solução rápida no código que faz minha instalação passar corretamente.

Para confirmar o que estou dizendo, basta alterar esta única linha no seguinte arquivo de instalação do seu pip:

$ diff /opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/adapters.patch.py /opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/adapters.py
209c209
<             if True or not proxy in self.proxy_manager:
---
>             if not proxy in self.proxy_manager:

A instalação do pip funciona corretamente depois ao instanciar um novo objeto ProxyManager todas as vezes.

Aqui está um exemplo de erro que eu costumava ter para minha instalação do pip:

$ pip install -r requirements.txt
....
Downloading/unpacking pecan>=0.4.5 (from -r requirements.txt (line 25))
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/req.py", line 1197, in prepare_files
    do_download,
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/req.py", line 1375, in unpack_url
    self.session,
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/download.py", line 546, in unpack_http_url
    resp = session.get(target_url, stream=True)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/sessions.py", line 468, in get
    return self.request('GET', url, **kwargs)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/download.py", line 237, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/sessions.py", line 456, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/sessions.py", line 559, in send
    r = adapter.send(request, **kwargs)
  File "/opt/venvs/ironic/lib/python2.6/site-packages/pip/_vendor/requests/adapters.py", line 384, in send
    raise Timeout(e, request=request)
Timeout: (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x2802e50>, 'Connection to pypi.python.org timed out. (connect timeout=15)')

Storing debug log for failure in /root/.pip/pip.log

Para os curiosos, o arquivo requirements.txt que estava testando é este:
https://github.com/openstack/ironic/blob/master/requirements.txt

Ei @alexandrem , não tenho certeza se estou grotando o que você realmente mudou. Foi em pip/_vendor/requests/adapters.py ? Ou um arquivo diferente?

Sim, minha alteração de teste foi em pip/_vendor/requests/adapters.py

Desculpe, o diff foi inverso, mas basicamente eu apenas adiciono um True à condição na linha 209 do adapter.py para sempre criar uma instância do ProxyManager, ignorando a lógica do gerenciador de pool.

Se todos que executaram o script de @dstufft acima puderem experimentar o script a seguir, isso nos ajudaria a diminuir o problema. Primeiro, se você puder determinar qual proxy requests está utilizando, pegue esse

from requests.packages.urllib3 import ProxyManager

proxy_url = 'http://localhost:8080'  # Just an example, place your proxy URL here please

pool = ProxyManager(proxy_url)
for i in range(100):
    print(i)
    pool.request("GET", "https://pypi.python.org/simple/", headers={'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}).read()

Isso é aproximadamente o equivalente ao que as solicitações enviam.

Além disso, se todos vocês pudessem fazer um simples get (com solicitações) para https://httpbin.org/get e postar o resultado da chamada do método json na resposta, eu estaria interessado em ver se a solicitação uma vez através do proxy difere do que poderíamos esperar ver de qualquer maneira.

Estou encontrando esse problema com pip 1.5.5 ou ótimo, e até mesmo com solicitações 2.2.1. Fixar a versão do pip em 1.5.4 resolve o problema e podemos instalar tudo bem. Script em execução @dstufft 's acima pypi falhar, como faz imgur, tanto na tentativa 52ª, no entanto google resolve sem um problema.

Aqui está o erro que recebo quando mato o pypi e o imgur são executados:

Traceback (most recent call last):
  File "pip_test.py", line 5, in <module>
    session.get("https://imgur.com/").content
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 395, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 383, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 486, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 330, in send
    timeout=timeout
  File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 542, in urlopen
    body=body, headers=headers)
  File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 367, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python2.7/httplib.py", line 973, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1007, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 969, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 829, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 791, in send
    self.connect()
  File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 111, in connect
    timeout=self.timeout)
  File "/usr/lib/python2.7/socket.py", line 562, in create_connection
    sock.connect(sa)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)

Aqui está o fastly debug:

H4sIAAAAAAAAA21Ta2/bIBT9K4hPW2cc/M5D+xDl0WXqsmpJ2kpLVRGb2qg2ZJg0aaP8912cdVnX
CluCey4H7rmHPS44y7iucXePv6ja4C7O+GqTu/esNuWTm6oKO3hRc036OZcW/6aeRVmyZStyKfpw
43k9tFhtpNn00IWQmx3ateO7OOwh/dgNqEs/onOePqhly6cehc9DY6H5vdotWxYG+n6a8rWlNnxn
lq3CVKXD1utSpMwIJZetnQ192r0JV2Xv12fqdpyzZeusmbb/0pELJvMNyznwckkWM4fLJiWClOF0
DmHvlDySqcqEzCGaP4s1AONGADIoBZRNJpeABG3Xo6Hr+ZHrQ8YNmYuKawBmXkjDIPSDMHCTII7D
IIoC52pGTzznXE0uyUCBUPppoDJ7rcXshM+4fgSRm3O8Tsf1EzdJXK8dnlLmvFqTm/H4vZtcMS1F
XQDkh7ST+EmS0AYYK71lOuOZnb3d+Ye6IU1ZWnBSP8Y+mX0dBPjg4G2hRH0nudkq/YC7P/dYwEJu
qiMTtQMRBFM/il5+oJWssgUOvp+PpnPSh0jBZFba2HQ0J0Gb0GbYDtSGmQ0YEA/BFqlB/bJUxw4D
mPE6hXPxD87qWuSygmYgIe+VrpoUBDNkClGjFex6QCmTaMUhupEZYgYYdFMDGNnaN1XW0SgMfO99
CN86ONWcGZ4dG+ERGhIvhuwUSsibMBg5JDQitA0a7V+VFhI/jtvJEIw+OunwFngl40tDqH0R/5/k
wzGExvhw+9IOtZXWdXusdM6keD5q1cWXs8mUGwdNZOr+qzjEYcmyTPO6eei10ZwbKyu8xggFXm3Q
zKDpdVO9ME+w6ZrVBbwH03TBtsgyDQewWKdH9/qU0sTe9ujpo58Ph8NvDZg8aVQEAAA=

Estamos usando o squid para o proxy com tunelamento de conexão no Ubuntu 12.04, mas não tenho a versão à mão.

@gravyboat Você pode executar o script que @sigmavirus24 postou também, por favor?

@dstufft Eu não tenho urllib3, desculpe, acabei de editar meu post acima, deixe-me ver como instalá-lo.

@dstufft desculpe, deveria ter sido mais claro, é especificamente packages.urllib3 que é problemático.

pip usa solicitações que usam urllib3 :) O script de solicitações que as pessoas tentaram anteriormente mostra que isso não é específico para pip, então o problema deve estar dentro de requests OR urllib3, então o script urllib3 nos dirá se é um problema de urllib3 ou um problema de solicitações.

@dstufft Os problemas eram um problema do debian (e, portanto, do ubuntu) aparentemente. Usando o seguinte script resolveu, pode querer que @sigmavirus24 edite sua postagem também:

from urllib3 import ProxyManager

proxy_url = 'http://localhost:8080'  # Just an example, place your proxy URL here please

pool = ProxyManager(proxy_url)
for i in range(100):
    print(i)
    pool.request("GET", "https://pypi.python.org/simple/", headers={'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}).read()

Recebi o seguinte erro:

Traceback (most recent call last):
  File "pip2_test.py", line 8, in <module>
    pool.request("GET", "https://pypi.python.org/simple/", headers={'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}).read()
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 193, in read
    e)
urllib3.exceptions.DecodeError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -2 while decompressing: inconsistent stream state',))

Parece estranho que o urllib3 tenha um problema especificamente com o Fastly.

editar:

O script funciona perfeitamente ao clicar em https://google.com/

@gravyboat é preocupante que o script urllib3 se comporte de maneira diferente das solicitações. Você verificou se usou o proxy correto? Não há razão para que ele falhe e os pedidos não.

@sigmavirus24 Sim, usei o mesmo proxy para todos os testes. A única constante entre os testes com falha é Fastly.

Eu enfrentei esse problema e é por causa da comunicação entre proxy e
pypi.python.org. O pacote python-request usado pelo tipo de paradas pypa
criando conexões após mais de 50 sessões. Portanto, você enfrentará esse problema.
Apenas tentei mudar o espelho global pypi para um dos espelhos ativos e
capaz de construir venv com sucesso.

Em quinta-feira, 3 de julho de 2014 às 8h02, Forrest [email protected] escreveu:

@sigmavirus24 https://github.com/sigmavirus24 Sim, usei o mesmo proxy
para todos os testes. A única constante entre os testes com falha é Fastly.


Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/pypa/pip/issues/1805#issuecomment -47860517.

Obrigado,
IK

@ik-dev que não nos ajuda nem um pouco. Você pode executar os scripts que @dstufft e eu postamos acima para nos ajudar a determinar por que isso acontece?

O problema foi corrigido na última versão urllib3 1.8.3. A equipe de solicitações deve incluir a versão de desenvolvimento mais recente em seu código (atualmente em algum lugar entre 1.8.2 e 1.8.3). Vou perguntar a eles.

Na verdade, tirei um tempo para rastrear o problema e encontrei o culpado. O problema foi a maneira como o urllib3 poolmanager envolve a conexão httplib e anexa as informações do túnel SSL para o ambiente proxy:

https://github.com/kennethreitz/requests/blob/master/requests/packages/urllib3/connectionpool.py#L664 -L683

O pool cria um novo objeto HTTPSConnection (na verdade, um macaco que corrigiu um com VerifiedHTTPSConnection) e define a conexão direta com o host proxy na primeira vez. A conexão é reutilizada no pool para as chamadas subsequentes corretamente e o soquete tem as informações corretas (conexão direta com o host proxy, com a mágica do túnel HTTP CONNECT definida pelo httplib).

No entanto, eventualmente, quando você reutiliza a mesma conexão para downloads grandes, como o índice pypi, o soquete é fechado no httplib HTTPSConnection.getresponse(). Em seguida, a próxima chamada para HTTPSConnection.send() estava causando uma reconexão automática, mas perdemos o contexto da configuração do proxy que foi feita no gerenciador de pool urllib3, porque o httplib não tem conhecimento disso (e esses métodos não foram conectados pelo VerifiedHTTPSConnection de urllib3).

Na versão mais recente do urllib3, vejo que eles definem a reconexão automática como false nos soquetes criados, portanto, quando o soquete é fechado, uma nova conexão é adicionada ao pool com _new_conn().

Então, basicamente, se você quiser testar essa correção, apenas pip install urllib3 e, em seguida, crie um link simbólico para esta versão mais recente de pip/_vendor/requests/packages/urllib3

@alexandrem Instalou o urllib3 1.8.3 e executou o script compartilhado acima. Mas o comportamento foi o mesmo mencionado por @sigmavirus24

[root @khanibdev ~]# pip install urllib3
Baixando/descompactando urllib3
Baixando urllib3-1.8.3.tar.gz (85kB): 85kB baixado
Executando setup.py (path:/tmp/pip_build_root/urllib3/setup.py) egg_info para o pacote urllib3>
nenhum diretório incluído anteriormente encontrado correspondendo a '_.pyc'
Instalando pacotes coletados: urllib3
Executando a instalação do setup.py para urllib3
nenhum diretório incluído anteriormente encontrado correspondendo a '_.pyc'
Urllib3 instalado com sucesso
Limpando...
[ root@khanibdev ~]# ./trial.py
0
Traceback (última chamada mais recente):
Arquivo "./trial.py", linha 10, em
pool.request("GET", "https://pypi.python.org/simple/", headers={'Accept-Encoding': 'gzip, deflate', 'Accept': '_/_'}). ler()
Arquivo "/usr/lib/python2.6/site-packages/urllib3/response.py", linha 210, em leitura
"falha ao decodificá-lo." % codificação_conteúdo, e)
urllib3.exceptions.DecodeError: ('Resposta recebida com codificação de conteúdo: gzip, mas falhou ao decodificá-la.', error('Erro -2 ao descompactar: ​​estado de fluxo inconsistente',))

@ik-dev
Tente este script em vez disso

from urllib3 import ProxyManager

proxy_url = 'https://your_proxy:3128'  # Just an example, place your proxy URL here please

pool = ProxyManager(proxy_url)
for i in range(100):
    print(i)
    res = pool.request("GET", "https://pypi.python.org/simple/").read()

Quando funcionar, você pode tentar uma nova execução do seu 'pip install -r requirements.txt' com um link simbólico para este urllib3 mais recente dentro de sua instalação do pip, para confirmar que tudo está bem.

Acabei de executar o script @alexandrem acima com a versão pypi mais recente do urllib3 e funcionou bem.

Também posso confirmar que substituir a versão urllib3 na pasta de solicitação do pip por um link simbólico para o urllib3 mais recente corrige o problema de tempo limite ao instalar o pip a partir de um arquivo requirements.txt grande

No entanto, quando executo o script postado por @sigmavirus24 , também recebo este erro:
urllib3.exceptions.DecodeError: ('Resposta recebida com codificação de conteúdo: gzip, mas falhou ao decodificá-la.', error('Erro -2 ao descompactar: ​​estado de fluxo inconsistente',))

Eu bifurquei o pip e atualizei o urllib3 para a versão 3.1.9 (mais recente no pypi) e funciona para nós ao instalar um pacote com muitas dependências por meio de um proxy. Sinta-se à vontade para experimentá-lo.
https://github.com/ctxis/pip

apenas para marcar, eu tive o mesmo problema que todos vocês estão tendo. consegui corrigi-lo dentro do pip, removendo o pool de sessões de solicitações forçando um novo PipSession() com cada HTTP GET. também consegui corrigi-lo em _vendor/requests/adapters.py alterando DEFAULT_RETRIES de 0 para 10. O pip bifurcado do @dgaus também funciona perfeitamente, e essa é minha solução provisória até as atualizações do pip. oh como eu gostaria de encontrar este tópico mais cedo, após 2 dias de trabalho completos de depuração de olhos arregalados e tcpdumping e eu culpando nosso proxy. eu odeio tudo agora, e todos vocês sabem o que quero dizer :)

Eu tive a mesma experiência que @pcraston : executei o script @alexandrem sem problemas (usando urllib3 v 1.9.0, instalado via pip) e @sigmavirus24 com o mesmo erro (usando solicitações 2.3.0).

Mesmo problema na instalação do Ubuntu, tentando instalar o "localshop". Mesmo problema na estação de trabalho Windows. Lá, consegui instalar req by req no terminal.

Na máquina "localshop", o problema (o mesmo descrito acima) aconteceu no pacote netaddr. Então instalei ele sozinho, netaddr==0.7.10, e vários outros então consegui finalizar minha instalação localshop.

Sim, é um firewall corporativo e não posso alterar meu ambiente.

Se o urllib3 realmente resolver o problema, se pudermos obter alguma confirmação, provavelmente poderemos trabalhar com a equipe de solicitações para obter um lançamento de patch com isso incluído, para que possamos fazer o mesmo antes da 1.6.

Eu bifurquei um instantâneo de solicitações e, em seguida, usei isso para substituí-lo em um virtualenv devpi resolveu meus problemas com o devpi.

…/bin/pip install -U "https://github.com/jhermann/requests/archive/proxy-fixed-for-devpi.zip#egg=requests"

Eu tenho tentado fazer isso funcionar em um banco de testes de produção. Acho que o ProxyManager não funciona se o seu proxy usar "Nome de usuário/senha" para usar o proxy.

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    pool.request("GET", "https://pypi.python.org/simple/", headers={'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}).read()
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/request.py", line 68, in request
    **urlopen_kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/request.py", line 81, in request_encode_url
    return self.urlopen(method, url, **urlopen_kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/poolmanager.py", line 261, in urlopen
    return super(ProxyManager, self).urlopen(method, url, redirect=redirect, **kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/poolmanager.py", line 153, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/connectionpool.py", line 579, in urlopen
    release_conn=release_conn, **response_kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/connectionpool.py", line 579, in urlopen
    release_conn=release_conn, **response_kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/connectionpool.py", line 579, in urlopen
    release_conn=release_conn, **response_kw)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/connectionpool.py", line 559, in urlopen
    _pool=self, _stacktrace=stacktrace)
  File "/appl/envprod/local/lib/python2.7/site-packages/urllib3/util/retry.py", line 265, in increment
    raise MaxRetryError(_pool, url, error)
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)))

Que versão do urllib3 é essa?

Só queria mencionar que encontrei isso, acho que também o pip 1.5.4 no sistema criou um virtualenv, tente pip install -r req.pip passando por um proxy (tinyproxy) obtido

Tempo esgotado: (, 'A conexão com pypi.python.org expirou. (tempo limite de conexão = 15)')

no ambiente virtual eu baixei o pip para o pip 1.4.1 e funciona agora

Estou com o mesmo problema ao tentar implantar meu aplicativo no Docker usando a imagem " ubuntu:14.04 " e "python3-pip", que é a versão 1.5.6. No meu caso, não sei como ter pip 1.4 na minha imagem do Ubuntu. Alguma dica?

A melhor maneira seria usar seu pip de distribuição para instalar outra versão do pip
:

pip install -U pip==1.4

Le vendredi 21 novembro 2014, Davi Garcia [email protected] a
escrito:

Estou com o mesmo problema ao tentar implantar meu aplicativo no Docker
usando a imagem " ubuntu:14.04 " e "python3-pip", que é a versão 1.5.6. No meu
caso, não sei como ter pip 1.4 na minha imagem do Ubuntu. Alguma dica?


Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/pypa/pip/issues/1805#issuecomment -64029177.

Alexandre

outro +1 para obter a correção para isso em um lançamento de pip o mais rápido possível

Isso me afeta também. O uso de um proxy SSL MITM lento resulta em tempo limite o tempo todo, independentemente do valor --default-timeout.

Passei algum tempo dividindo solicitações e urllib3, e o problema parece ter sido corrigido no upstream.

Especificamente, o problema foi corrigido em shazow/ urllib3@1c30a1f3a4af9591f480a338f75221bdf5ca48da , que foi lançado em 1.8.3, que foi vendido por solicitações em 2.4.0, que por sua vez foi vendido por pip em 6.0.

O uso de uma versão afetada de solicitações falha ao usar o proxy após 24 solicitações get para pypi e o pip falha ao usar o proxy após a instalação de 12 pacotes. Atualizá-los corrige o problema para mim.

É fixado no pip 1.6

Todos deveriam atualizar :)

Le lundi 19 janvier 2015, Stratos Moros [email protected] um escrito:

Passei algum tempo dividindo solicitações e urllib3, e o problema parece
ser fixado a montante.

Especificamente, o problema foi corrigido em shazow/ urllib3@1c30a1f
https://github.com/shazow/urllib3/commit/1c30a1f3a4af9591f480a338f75221bdf5ca48da ,
que foi lançado em 1.8.3, que foi vendido por pedidos em 2.4.0, que
foi por sua vez vendido por pip em 6.0.

O uso de uma versão afetada de solicitações falha ao usar o proxy de maneira confiável
após 24 obter solicitações para pypi e pip falha ao usar o proxy após
12 pacotes foram instalados. Atualizá-los corrige o problema para mim.


Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/pypa/pip/issues/1805#issuecomment -70536334.

Alexandre

Fechando isso, pois está corrigido no pip 6.x.

Estou vendo um comportamento idêntico ao que todos estão relatando aqui no Pip 7.1 (instalado por padrão com o instalador do Python 2.7.10) no Windows 7. Este é o mesmo problema? Isso foi corrigido no Windows?

Também recebo esse problema na rede Windows da nossa empresa com diferentes versões do pip.

Usando o pip 6.0.8 de C:\Python34\lib\site-packages (python 3.4), recebo esta saída no console:

C:\src\set>c:\Python34\Scripts\pip.exe install cx_Freeze
Collecting cx-Freeze
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connec
tion broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio
n failed: 407 Proxy Authentication Required ( The ISA Server requires authorizat
ion to fulfill the request. Access to the Web Proxy filter is denied.  )',))': /
simple/cx-freeze/
  Could not find any downloads that satisfy the requirement cx-Freeze
  No distributions at all found for cx-Freeze

Usando pip 1.0.1 de c:\python27\lib\site-packages (python 2.7) eu obtive este conteúdo do arquivo pip.log:==

C:\Python27\Scripts\pip-script.py run on 08/11/15 16:36:48
Downloading/unpacking cx-Freeze
  Getting page http://pypi.python.org/simple/cx_Freeze
  Could not fetch URL http://pypi.python.org/simple/cx_Freeze: HTTP Error 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  )
  Will skip URL http://pypi.python.org/simple/cx_Freeze when looking for download links for cx-Freeze
  Getting page http://pypi.python.org/simple/
  Could not fetch URL http://pypi.python.org/simple/: HTTP Error 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  )
  Will skip URL http://pypi.python.org/simple/ when looking for download links for cx-Freeze
  Cannot fetch index base URL http://pypi.python.org/simple/
  URLs to search for versions for cx-Freeze:
  * http://pypi.python.org/simple/cx_Freeze/
  Getting page http://pypi.python.org/simple/cx_Freeze/
  Could not fetch URL http://pypi.python.org/simple/cx_Freeze/: HTTP Error 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  )
  Will skip URL http://pypi.python.org/simple/cx_Freeze/ when looking for download links for cx-Freeze
  Could not find any downloads that satisfy the requirement cx-Freeze
No distributions at all found for cx-Freeze
Exception information:
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pip\basecommand.py", line 126, in main
    self.run(options, args)
  File "C:\Python27\lib\site-packages\pip\commands\install.py", line 223, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python27\lib\site-packages\pip\req.py", line 954, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python27\lib\site-packages\pip\index.py", line 152, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for cx-Freeze

Este ainda é um problema no pip versão 7.1.2.

Eu estou vendo isso para index_urls embora.

Por exemplo, se você tentar baixar pandas de um índice, os pandas exigirão numpy qual pip tentará obter do PYPI em vez do index_url especificado

detalhes são:

Python 2.7
Pip 7.1.2
Red Hat Centos 6.6

@AndiEcker , você encontrou alguma solução para esse problema? Até eu enfrento o mesmo problema do meu escritório. Agradeço muito sua ajuda.

Este é o erro:

  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connec
tion broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.conne
ction.VerifiedHTTPSConnection object at 0x00000000033A19E8>, 'Connection to pypi
.python.org timed out. (connect timeout=15)')': /simple/pydicom/

@iamnagesh : a solução para o meu caso foi que nosso administrador de rede me deu acesso à Internet sem proxy.

Mas sua mensagem de erro parece diferente de qualquer maneira - desculpe, mas não sei por que sua conexão está mostrando um erro de tempo limite - se você tiver uma conexão lenta à Internet, talvez tente aumentar o tempo limite (infelizmente, não sei como fazer isso) .

Para os erros anteriores envolvendo autenticação de proxy http via NTLM, sugiro usar cntlm como solução alternativa.

Configurá-lo localmente com um hash NTLM para sua senha de proxy realmente resolve muitos problemas diferentes com aplicativos e bibliotecas que não suportam muito bem proxies http/https corporativos.

Você só precisa definir suas vars de proxy e configurações de aplicativo para http://localhost :3128

@iamnagesh Estou enfrentando o mesmo erro ao instalar um pacote por meio do pip no prompt do anaconda.
Configurei a variável de ambiente HTTP e HTTPS para proxy. Ainda tenho o mesmo erro. Você pode por favor dizer o que você fez para resolver o problema.

@ashi-taka: no meu caso, nossos administradores de rede corrigiram para mim e AFAIR a correção
foi que nossos administradores de rede removeram totalmente qualquer proxy em nossa empresa
rede.

2016-04-06 6:00 GMT+01:00 ashi-taka [email protected] :

@AndiEcker https://github.com/AndiEcker Estou enfrentando o mesmo erro
ao instalar um pacote através do pip no prompt do anaconda.
Configurei a variável de ambiente HTTP e HTTPS para proxy. Ainda tenho
mesmo erro. Você pode por favor dizer o que você fez para resolver o problema.


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/pypa/pip/issues/1805#issuecomment -206118777

Embora a configuração do proxy tenha sido adicionada no nível do sistema, por algum motivo _pip_ estava dando o erro _ [Errno 101] Network is unreachable _

Usar a opção de proxy corrigiu o problema. (graças a @pcraston )

sudo pip install pandas --proxy= proxy:8080

Ubuntu 14.04
pip 8.1.2

A execução do pip com a chave --isolated resolveu o problema para mim.
pip3 8.1.1

Obteve os mesmos erros com pip 9.0.1 @ windows 10
O problema estava com o proxy, ele foi definido como "" (vazio, mas sinalizado como proxy usado) no nível do sistema.

[atualização] Funcionou!


Olá a todos
Alguém pode me ajudar? Eu tentei instalar o mkdocs e recebi este erro:

C:Users\Lenovo Local>pip install mkdocs
Coletando mkdocs
Tentando novamente (Repetir(total=4, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum)) após a conexão ser interrompida por 'ConnectTimeoutError(, 'A conexão com pypi.python.org expirou. (tempo limite de conexão=15)')': /simple/mkdocs/
...
@alexandrem esta solução não funciona mais porque a linha 209 está vazia - alguma outra ideia?
(comentado em 2 de julho de 2014) Acabei de adicionar um True à condição na linha 209 do adapter.py para sempre criar uma instância do ProxyManager, ignorando a lógica do gerenciador de pool.

Python 3.5.3
pip 9.0.1
Obrigado.

Oi, não consigo instalar o lightgbm no spyder. Eu recebo o erro followinf... agradecia qualquer ajuda sobre como corrigir isso. Sim, há um proxy no trabalho. Obrigado..!

Tentando novamente (Repetir(total=4, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum)) após a conexão ser interrompida por 'NewConnectionError(': Falha ao estabelecer uma nova conexão: [Errno 11002] getaddrinfo failed',)': /simple/lightgbm/

Bem, parece que você tem problemas de DNS, sobre os quais o pip não pode fazer nada. Além disso, tente evitar anexar tickets fechados, isso sempre torna as coisas pouco transparentes.

pip install -U requisito --proxy=my_ proxy:port

funcionou!!

Oi Senani, não funcionou para mim. Codifiquei corretamente? Digamos que eu precise baixar o modile implícito.

pip install implícito --proxy=sm_ proxy:xx28

Também estou atrás de um firewall pacs. Cada vez que uso a internet, preciso digitar logina e senha.

Obrigado uma tonelada.

Então, eu tive um problema semelhante a este, onde estava falhando apenas nas instalações do pip do git repo. Isso só falhou quando eu estava atrás de um proxy. Não consegui resolver isso para instalações do git por http. Acabei mudando minha instalação para usar ssh que funcionou para o meu ambiente.

Funciona atrás do proxy

pip install git+ssh://[email protected]/path/to/repo@tag#egg=package-name

Não funciona atrás de proxy

pip install git+git://github.com/path/to/repo@tag#egg=package-name

Abaixo do comando pip funcionou para mim.

sudo pip --proxy http://proxy_username:proxy_password@proxyhost :port install

No meu caso o problema foi com a variável PIP_INDEX_URL .
--isolated ajudou.

o sinalizador --isolated funcionou para mim quando não estou atrás de um proxy, mas o erro Cannot connect to Proxy continua aparecendo!

Basta tentar o abaixo
pip install --proxy=user:pass<strong i="6">@server</strong>:port <package Name>

por exemplo
pip install --proxy=http://10.10.10.150/accelerated_pac_base.pac quandl

No meu caso, ambas as soluções funcionam:

  • definir proxy em pip pip install --proxy=user:pass<strong i="7">@server</strong>:port <package Name>
  • ou definindo HTTP_PROXY & HTTPS_PROXY então pip install <package Name>

No meu caso, ambas as soluções funcionam:

  • definir proxy em pip pip install --proxy=user:pass<strong i="8">@server</strong>:port <package Name>
  • ou definindo HTTP_PROXY & HTTPS_PROXY então pip install <package Name>

Eu já tinha http_proxy e https_proxy configurados, mas estava tendo falhas de conexão. Simplesmente configurar HTTP_PROXY e HTTPS_PROXY funcionou para mim.

Consegui resolver o problema aumentando os recursos no meu servidor proxy. Inicialmente, meu servidor proxy estava executando 2 "servidores" e permitia 5 conexões "cliente". Depois de aumentar para 10 servidores e 20 conexões de clientes, o pip instalou os pacotes perfeitamente.

Este tópico foi bloqueado automaticamente, pois não houve nenhuma atividade recente depois que ele foi fechado. Por favor, abra um novo problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações