Возможно, вы сможете использовать многопоточные блокировки, если не слишком много подключений одновременно и вам нужен доступ из нескольких потоков:
import socks
import socket
import thread
lock = thread.allocate_lock()
socket.socket = socks.socksocket
def GetConn():
lock.acquire()
import urllib2
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "x.x.x.x", y)
conn = urllib2.urlopen(ARGUMENTS HERE)
lock.release()
return conn
Вы также можете использовать что-то подобное каждый раз, когда вам нужно установить соединение:
urllib2 = execfile('urllib2.py')
urllib2.socket = dummy_class() # dummy_class needs the socket module's methods
Это явно не фантастические решения, но я все равно положил свои 2:: -)