Mi computadora está ejecutando Windows detrás de un proxy en un servidor de Windows (usando el directorio activo), y no puedo averiguar cómo hacerlo pip
(en python3). He intentado usarlo --proxy
, pero todavía solo se agota el tiempo de espera. También intenté establecer un tiempo de espera prolongado (60 s), pero eso no hizo ninguna diferencia. La configuración de mi proxy es correcta y la comparé con las que estoy usando con éxito en TortoiseHG para asegurarme.
¿Hay algún otro truco que alguien sepa que pueda probar o hay alguna limitación pip
con respecto a los proxies de Windows?
Actualización: Mis intentos fallidos involucraron la búsqueda de pypi. Intenté instalar algo y funcionó. Sin embargo, la búsqueda aún falla. ¿Esto indica un error pip
o funcionan de manera diferente?
fuente
Me tomó un par de horas resolver esto, pero finalmente lo puse en funcionamiento usando CNTLM y luego lo hice funcionar con solo un archivo de configuración pip. Así es como lo hice funcionar con el archivo de configuración pip ...
Solución:
1. En Windows, navegue hasta el directorio de su perfil de usuario (Ej. C: \ Users \ Sync) y cree una carpeta llamada " pip "
2. Cree un archivo llamado " pip.ini " en este directorio (Ej. C: \ Users \ Sync \ pip \ pip.ini) e ingrese lo siguiente en él:
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]
Reemplace [nombre de dominio] , [nombre de usuario] , [contraseña] , [dirección de proxy] y [puerto de proxy] con su propia información.
Tenga en cuenta que si su [nombre de dominio] , [nombre de usuario] o [contraseña] tiene caracteres especiales, debe codificar en porcentaje | codificarlos .
3. En este punto pude ejecutar " pip install " sin problemas.
¡Ojalá esto funcione para otros también!
PD: Esto puede representar un problema de seguridad debido a que su contraseña se almacena en texto sin formato. Si esto es un problema, considere configurar CNTLM usando este artículo (permite usar una contraseña con hash en lugar de texto sin formato). A continuación, establezca
proxy = 127.0.0.1:3128
el archivo "pip.ini" mencionado anteriormente.fuente
PIP_CONFIG_FILE
la variable de entorno para que apunte al archivoAsí es como lo configuré:
Exporta la configuración del proxy:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
Instale el paquete que desea instalar:
pip install PackageName
Por ejemplo:
fuente
--proxy
argumento simplemente no lo tendría en absoluto, pero el enfoque estándar de env var funcionó la primera vez. Para el registro, también nos configuramosno_proxy
para evitar otras solicitudes internas que intentan salir a través del proxy.cygwin
ocmder
y luego hacerlo de la manera Linux:export http_proxy=<proxy>
yexport https_proxy=<proxy>
y luego simplemente hacerpip install <package>
--proxy
bandera de la línea de comandos nunca lo hizo. Windows 10.Me encontré con el mismo problema en Windows 7. Me las arreglé para hacerlo funcionar creando una carpeta "pip" con un archivo "pip.ini" dentro. Puse esta carpeta dentro de "C: \ Users \ {my.username} \ AppData \ Roaming", porque de acuerdo con la documentación de Python:
En el archivo pip.ini solo tengo:
[global] proxy = [proxy address]:[proxy port]
Entonces no hay nombre de usuario: contraseña. Y está funcionando bien.
fuente
Tuve un problema similar y descubrí que mi empresa usa autenticación de proxy NTLM. Si ve este error en su pip.log, probablemente este sea el problema:
NTLMaps se puede utilizar para interactuar con el servidor proxy NTLM convirtiéndose en un proxy intermedio.
Descargue NTLMAP, actualice el server.cfg incluido, ejecute el archivo main.py, luego apunte la configuración del proxy de pip a 127.0.0.1 :.
También necesitaba cambiar estos valores predeterminados en el
server.cfg
archivo a:LM_PART:1 NT_PART:1 # Highly experimental option. See research.txt for details. # LM - 06820000 # NT - 05820000 # LM + NT - NTLM_FLAGS: 07820000
http://ntlmaps.sourceforge.net/
fuente
También puede tener problemas con los certificados de su proxy. Aquí hay muchas respuestas sobre cómo recuperar el certificado de su proxy.
En un host de Windows, para permitir que pip borre su proxy, es posible que desee establecer una variable de entorno como:
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
También puede usar el
--cert
argumento toPIP
con el mismo resultado.fuente
Tuve el mismo problema en un entorno de Windows remoto. Probé muchas soluciones que se encuentran aquí o en otras publicaciones similares, pero nada funcionó. Finalmente, la solución fue bastante simple. Tuve que configurar
NO_PROXY
con cmd:set NO_PROXY="<domain>\<username>:<password>@<host>:<port>" pip install <packagename>
Tienes que usar comillas dobles y poner
NO_PROXY
en mayúsculas. También puede agregarNO_PROXY
una variable de entorno en lugar de configurarla cada vez que use la consola.Espero que esto ayude si alguna otra solución publicada aquí funciona.
fuente
instalar cntlm: Cntlm: Fast NTLM Authentication Proxy en C
Configurar cntlm.ini:
iniciarlo:
Ahora en cmd.exe:
Collecting pip Downloading https://files.pythonhosted. 44c8a6e917c1820365cbebcb6a8974d1cd045ab4/ 100% |███████████████████████████████ Installing collected packages: pip Found existing installation: pip 9.0.1 Uninstalling pip-9.0.1: Successfully uninstalled pip-9.0.1 Successfully installed pip-10.0.1
¡trabajos!
También puede ocultar la contraseña: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
fuente
El mismo problema en Windows10 y las soluciones anteriores no funcionan para mí.
use una herramienta de consola de emulador como
cygwin
y luego hágalo de la manera predeterminada de Linux:y las cosas están funcionando bien.
fuente