Puuttuva SOCKS-riippuvuus on paikallisen Python-asennuksen ongelma. Requests ja HTTPX käyttävät eri valinnaisia paketteja, joten asenna skriptin tuoman asiakkaan lisäosa.

Requests

uv add 'requests[socks]'
uv run python -c 'import requests, socks; print(requests.__version__)'

Requests käyttää PySocksia. Kun riippuvuus on asennettu, socks5h://-välityspalvelinosoite siirtää kohteen DNS:n SOCKS-välityspalvelimelle. Päätepisteen itsensä on tarjottava SOCKS-palvelua.

HTTPX

uv add 'httpx[socks]'
uv run python -c 'import httpx, socksio; print(httpx.__version__)'

HTTPX käyttää socksio-pakettia; requests[socks]-asennus ei tuo HTTPX:n lisäosaa.

Onko jo asennettu?

Pääte, IDE, notebook-ydin ja ajastettu työ voivat käyttää eri Python-ympäristöjä. Tarkista epäonnistuvan skriptin suorittava tulkki:

uv run python -c 'import sys; print(sys.executable)'

Suorita tuontitesti samassa ympäristössä. Kun se onnistuu, yritä pyyntöä uudelleen rajatulla aikakatkaisulla; myöhemmät todennus-, yhteys- tai SOCKS-vastausvirheet koskevat itse yhteyttä. Jos seuraava testi tarvitsee julkisia päätepisteitä, katso SOCKS5-välityspalvelinluetteloa ja pidä asiakas vastaavassa SOCKS-tilassa.

Aiheeseen liittyvät artikkelit