title: How to control tor, when use tor proxy
body: <p>I'm trying to connect to a resource using a tor, changing identity. But after the first connection attempt to change identity causes an error.
  Code:</p>
  
  <pre><code>import urllib2, socks, socket
  from stem import Signal
  from stem.control import Controller
  
  
  def newI():
      with Controller.from_port(port=9051) as controller:
          controller.authenticate()
          controller.signal(Signal.NEWNYM)
  
  newI()
  
  socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
  socket.socket = socks.socksocket
  
  headers = {'User-Agent': 'Mozilla/3.0 (x86 [en] Windows NT 5.1; Sun)'} 
  req = urllib2.Request('https://google.com', None, headers)
  response = urllib2.urlopen(req)
  html = response.read()
  
  newI()
  </code></pre>
  
  <p>I get error:</p>
  
  <pre><code>  File "/media/all/Run/e/c.py", line 21, in &lt;module&gt;
      newI()
    File "/media/all/Run/e/c.py", line 7, in newI
      with Controller.from_port(port=9051) as controller:
    File "/usr/local/lib/python2.7/dist-packages/stem/control.py", line 659, in from_port
      control_port = stem.socket.ControlPort(address, port)
    File "/usr/local/lib/python2.7/dist-packages/stem/socket.py", line 314, in __init__
      self.connect()
    File "/usr/local/lib/python2.7/dist-packages/stem/socket.py", line 187, in connect
      self._socket = self._make_socket()
    File "/usr/local/lib/python2.7/dist-packages/stem/socket.py", line 340, in _make_socket
      control_socket.connect((self._control_addr, self._control_port))
    File "/usr/lib/python2.7/dist-packages/socks.py", line 369, in connect
      self.__negotiatesocks5(destpair[0],destpair[1])
    File "/usr/lib/python2.7/dist-packages/socks.py", line 236, in __negotiatesocks5
      raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
  TypeError: __init__() takes exactly 2 arguments (3 given)
  </code></pre>
  
  <p>Maybe I need to disable the proxy. Tell me how to do it correctly.</p>
  
  <p>UPD:</p>
  
  <p>With pycurl it's work:</p>
  
  <pre><code>import pycurl
  import cStringIO
  from stem import Signal
  from stem.control import Controller
  
  
  def newI():
      with Controller.from_port(port=9051) as controller:
          controller.authenticate()
          controller.signal(Signal.NEWNYM)
  
  newI()
  
  buf = cStringIO.StringIO()
  c = pycurl.Curl()
  c.setopt(pycurl.URL, 'http://google.com/')
  c.setopt(c.WRITEFUNCTION, buf.write)
  c.setopt(pycurl.PROXY, 'localhost')
  c.setopt(pycurl.PROXYPORT, 9050)
  c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
  c.perform()
  html = buf.getvalue()[7:]
  buf.close()
  
  newI()
  </code></pre>