Na moim komputerze działa system Windows za proxy na serwerze Windows (przy użyciu usługi Active Directory) i nie mogę dowiedzieć się, jak się przez to przejść pip
(w python3). Próbowałem użyć --proxy
, ale nadal są to tylko limity czasu. Próbowałem też ustawić długi limit czasu (60 s), ale to nie miało znaczenia. Moje ustawienia proxy są poprawne i porównałem je z tymi, których z powodzeniem używam w TortoiseHG, aby się upewnić.
Czy są jakieś inne sztuczki, o których ktoś wie, które mogę wypróbować, czy są jakieś ograniczenia pip
dotyczące serwerów proxy systemu Windows?
Aktualizacja: Moje nieudane próby obejmowały wyszukiwanie pypi. Właśnie próbowałem coś zainstalować i zadziałało. Wyszukiwanie wciąż jednak kończy się niepowodzeniem. Czy to wskazuje na błąd, pip
czy też działają one inaczej?
źródło
Zajęło mi to kilka godzin, aby to rozgryźć, ale w końcu uruchomiłem go przy użyciu CNTLM, a potem uruchomiłem go tylko z plikiem konfiguracyjnym pip. Oto jak to działa z plikiem konfiguracyjnym pip ...
Rozwiązanie:
1. W systemie Windows przejdź do katalogu profilu użytkownika (np. C: \ Users \ Sync) i utwórz folder o nazwie „ pip ”
2. Utwórz plik o nazwie „ pip.ini ” w tym katalogu (np. C: \ Users \ Sync \ pip \ pip.ini) i wprowadź do niego następujące informacje:
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]
Zastąp [nazwa domeny] , [nazwa użytkownika] , [hasło] , [adres proxy] i [port proxy] własnymi informacjami.
Uwaga, jeśli Twoja [nazwa domeny] , [nazwa użytkownika] lub [hasło] zawiera znaki specjalne, musisz zakodować | zakoduj je.
3. W tym momencie mogłem bez problemu uruchomić " pip install ".
Miejmy nadzieję, że to działa również dla innych!
PS: Może to stanowić zagrożenie dla bezpieczeństwa, ponieważ hasło jest przechowywane w postaci zwykłego tekstu. Jeśli jest to problem, rozważ skonfigurowanie CNTLM za pomocą tego artykułu (pozwala na użycie zaszyfrowanego hasła zamiast zwykłego tekstu). Następnie ustaw
proxy = 127.0.0.1:3128
w wymienionym wyżej pliku „pip.ini”.źródło
PIP_CONFIG_FILE
zmienną środowiskową tak, aby wskazywała na plikOto jak to skonfigurowałem:
Eksportuj ustawienia proxy:
set http_proxy=http://username:password@proxyAddress:port
set https_proxy=https://username:password@proxyAddress:port
Zainstaluj pakiet, który chcesz zainstalować:
pip install PackageName
Na przykład:
źródło
--proxy
argument po prostu go nie miał, ale standardowe podejście env var działało za pierwszym razem. Dla przypomnienia, postanowiliśmy równieżno_proxy
unikać innych żądań wewnętrznych próbujących wychodzić przez serwer proxy.cygwin
lubcmder
, a następnie zrobić to tak, Linux:export http_proxy=<proxy>
iexport https_proxy=<proxy>
, a następnie po prostu zrobićpip install <package>
--proxy
flaga wiersza poleceń nigdy nie działała . Windows 10.Napotkałem ten sam problem w systemie Windows 7. Udało mi się go uruchomić, tworząc folder „pip” z plikiem „pip.ini” w środku. Umieściłem ten folder w folderze „C: \ Users \ {my.username} \ AppData \ Roaming”, ponieważ zgodnie z dokumentacją Pythona:
W pliku pip.ini mam tylko:
[global] proxy = [proxy address]:[proxy port]
Więc nie ma nazwy użytkownika: hasło. I działa dobrze.
źródło
Miałem podobny problem i stwierdziłem, że moja firma używa uwierzytelniania proxy NTLM. Jeśli widzisz ten błąd w swoim pip.log, prawdopodobnie jest to problem:
NTLMaps może służyć do łączenia się z serwerem proxy NTLM, stając się pośrednim serwerem proxy.
Pobierz NTLMAP, zaktualizuj dołączony server.cfg, uruchom plik main.py, a następnie wskaż ustawienie proxy pip na 127.0.0.1 :.
Musiałem również zmienić te domyślne wartości w
server.cfg
pliku na: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/
źródło
Możesz również napotkać problemy z certyfikatami z serwera proxy. Tutaj znajdziesz wiele odpowiedzi na temat odzyskiwania certyfikatu serwera proxy.
Na hoście z systemem Windows, aby umożliwić pipowi wyczyszczenie serwera proxy, możesz ustawić zmienną środowiskową, taką jak:
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
Możesz również użyć
--cert
argumentu doPIP
z tym samym wynikiem.źródło
Miałem ten sam problem w zdalnym środowisku Windows. Wypróbowałem wiele rozwiązań znalezionych tutaj lub na innych podobnych postach, ale nic nie działało. Wreszcie rozwiązanie było dość proste. Musiałem ustawić za
NO_PROXY
pomocą cmd:set NO_PROXY="<domain>\<username>:<password>@<host>:<port>" pip install <packagename>
Musisz użyć podwójnych cudzysłowów i ustawić
NO_PROXY
wielkie litery. Możesz także dodaćNO_PROXY
jako zmienną środowiskową zamiast ustawiać ją za każdym razem, gdy używasz konsoli.Mam nadzieję, że to pomoże, jeśli inne zamieszczone tutaj rozwiązanie zadziała.
źródło
zainstaluj cntlm: Cntlm: Fast NTLM Authentication Proxy w C
Konfiguracja cntlm.ini:
Zacznij to:
Teraz w 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
Pracuje!
Możesz również ukryć hasło: https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
źródło
ten sam problem na Windows10 i nowszych rozwiązaniach nie działają dla mnie.
użyj narzędzia konsoli emulatora, takiego jak,
cygwin
a następnie zrób to w domyślny sposób linux:i wszystko działa dobrze.
źródło