title: Trying to upgrade Python 2.7.0 to Python 2.7.3 using pip: SyntaxError; confused between python2 and python3?
body: <p>I have an installation of Python 2.7.0 in a virtualenv in <code>/local/gerrit/python2.7</code>. I'd like to upgrade this to Python 2.7.3. I'm trying to use pip for this, but somehow it seems to be confused between python2 and python3:</p>
  
  <pre><code>$ pip install --upgrade 'python&gt;=2.7,&lt;2.7.99'
  Downloading/unpacking python&gt;=2.7,&lt;2.7.99 from http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
    Running setup.py egg_info for package python
      Traceback (most recent call last):
        File "&lt;string&gt;", line 16, in &lt;module&gt;
        File "/local/gerrit/python2.7/build/python/setup.py", line 1804
          exec(f.read(), globals(), fficonfig)
      SyntaxError: unqualified exec is not allowed in function 'configure_ctypes' it contains a nested function with free variables
      Complete output from command python setup.py egg_info:
      Traceback (most recent call last):
  
    File "&lt;string&gt;", line 16, in &lt;module&gt;
  
    File "/local/gerrit/python2.7/build/python/setup.py", line 1804
  
      exec(f.read(), globals(), fficonfig)
  
  SyntaxError: unqualified exec is not allowed in function 'configure_ctypes' it contains a nested function with free variables
  
  ----------------------------------------
  Command python setup.py egg_info failed with error code 1 in /local/gerrit/python2.7/build/python
  Storing complete log in /storage4/home/gerrit/.pip/pip.log
  </code></pre>
  
  <p>It looks like <code>/local/gerrit/python2.7/build/python/setup.py</code> actually has a python3 syntax, and something got messed up. Is my diagnosis correct? How do I clean this up in a way that doesn't require reinstalling Python and all its libraries?</p>