Python3 - Requests with Sock5 proxy

I think at the moment requests works with socks5 out of the box.

import requests

url = 'https://example.com'
proxies = {'http': 'socks5://127.0.0.1:9150',
           'https': 'socks5://127.0.0.1:9150'}
r = requests.get(url, proxies=proxies)

You can use socks, socket modules

import socks
import socket
from urllib import request

socks.set_default_proxy(socks.SOCKS5, "localhost", 9050)
socket.socket = socks.socksocket
r = request.urlopen('http://icanhazip.com')
print(r.read()) # check ips

The socks package can be installed from multiple packages which are forks of socksipy. One particular one that also works on Python3 is PySocks. You can install it, for example, with pip:

pip3 install PySocks