Meu computador está executando o Windows atrás de um proxy em um servidor Windows (usando o diretório ativo), e não consigo descobrir como lidar com isso com pip
(em python3). Eu tentei usar --proxy
, mas ainda assim é apenas o tempo limite. Também tentei definir um tempo limite longo (60s), mas isso não fez diferença. Minhas configurações de proxy estão corretas e eu as comparei com aquelas que estou usando com sucesso no TortoiseHG para ter certeza.
Há algum outro truque que alguém conheça que eu possa tentar, ou há alguma limitação em pip
relação aos proxies do Windows?
Atualização: Minhas tentativas fracassadas envolveram pesquisar pypi. Acabei de tentar instalar algo e funcionou. A busca ainda falha. Isso indica um bug pip
ou eles funcionam de forma diferente?
fonte
Levei algumas horas para descobrir isso, mas finalmente consegui fazê-lo funcionar usando CNTLM e depois fiz com que funcionasse apenas com um arquivo de configuração pip. Aqui está como eu fiz funcionar com o arquivo de configuração do pip ...
Solução:
1. No Windows, navegue até o diretório do seu perfil de usuário (Ex. C: \ Usuários \ Sincronizar) e crie uma pasta chamada " pip "
2. Crie um arquivo chamado " pip.ini " neste diretório (Ex. C: \ Users \ Sync \ pip \ pip.ini) e digite o seguinte nele:
Substitua [nome de domínio] , [nome de usuário] , [senha] , [endereço de proxy] e [porta de proxy] por suas próprias informações.
Observe, se seu [nome de domínio] , [nome de usuário] ou [senha] tiver caracteres especiais, você deve codificar por cento | codifique- os.
3. Nesse ponto, consegui executar o " pip install " sem problemas.
Espero que isso funcione para outras pessoas também!
PS: Isso pode representar uma preocupação de segurança por ter sua senha armazenada em texto simples. Se isso for um problema, considere configurar o CNTLM usando este artigo (permite o uso de senha com hash em vez de texto simples). Posteriormente, defina
proxy = 127.0.0.1:3128
no arquivo "pip.ini" mencionado acima.fonte
PIP_CONFIG_FILE
a variável de ambiente para apontar para o arquivoÉ assim que eu configurei:
Exporte as configurações de proxy:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
Instale o pacote que deseja instalar:
pip install PackageName
Por exemplo:
fonte
--proxy
argumento simplesmente não o teria, mas a abordagem env var padrão funcionou na primeira vez. Para registro, tambémno_proxy
evitamos que outras solicitações internas tentem sair pelo proxy.cygwin
oucmder
e, em seguida, fazê-lo da forma como o Linux:export http_proxy=<proxy>
eexport https_proxy=<proxy>
em seguida, basta fazerpip install <package>
--proxy
sinalizador de linha de comando nunca funcionou. Windows 10.Eu encontrei o mesmo problema no Windows 7. Eu consegui fazer funcionar criando uma pasta "pip" com um arquivo "pip.ini" dentro dela. Coloquei esta pasta dentro de "C: \ Users \ {my.username} \ AppData \ Roaming", porque de acordo com a documentação do Python:
No arquivo pip.ini, tenho apenas:
Portanto, nenhum nome de usuário: senha. E está funcionando muito bem.
fonte
Tive um problema semelhante e descobri que minha empresa usa autenticação de proxy NTLM. Se você vir esse erro em seu pip.log, provavelmente este é o problema:
Os NTLMaps podem ser usados para fazer interface com o servidor proxy NTLM, tornando-se um proxy intermediário.
Baixe NTLMAPs, atualize o server.cfg incluído, execute o arquivo main.py e aponte a configuração de proxy de pip para 127.0.0.1 :.
Também precisei alterar esses valores padrão no
server.cfg
arquivo para:http://ntlmaps.sourceforge.net/
fonte
Você também pode ter problemas com os certificados do seu proxy. Existem muitas respostas aqui sobre como recuperar o certificado do seu proxy.
Em um host Windows, para permitir que o pip limpe o seu proxy, você pode definir uma variável de ambiente como:
Você também pode usar o
--cert
argumento paraPIP
com o mesmo resultado.fonte
Eu tive o mesmo problema em um ambiente remoto do Windows. Tentei várias soluções encontradas aqui ou em outros posts semelhantes, mas nada funcionou. Por fim, a solução foi bastante simples. Tive que definir
NO_PROXY
com cmd:Você deve usar aspas duplas e definir
NO_PROXY
para maiúsculas. Você também pode adicionarNO_PROXY
uma variável de ambiente em vez de defini-la cada vez que usar o console.Espero que isso ajude se alguma outra solução postada aqui funcionar.
fonte
instalar cntlm: Cntlm: Proxy de autenticação NTLM rápido em C
Config cntlm.ini:
inicie:
Agora em cmd.exe:
trabalho!
Você também pode ocultar a senha: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
fonte
mesmo problema no windows10 e soluções acima não estão funcionando para mim.
use uma ferramenta de console de emulador como
cygwin
e, em seguida, faça isso da maneira padrão do Linux:e as coisas estão funcionando bem.
fonte