[Distutils] Distribute without 2to3

Paul Nasrat pnasrat at gmail.com
Tue Jun 21 12:43:35 CEST 2011


On 21 June 2011 10:23, Wichert Akkerman <wichert at wiggy.net> wrote:
>
> On 06/21/2011 11:21 AM, Lennart Regebro wrote:
>>
>> On Tue, Jun 21, 2011 at 10:34, Vinay Sajip<vinay_sajip at yahoo.co.uk>  wrote:
>>>
>>> I'm testing a branch of Python which provides out-of-the-box ability to create
>>> virtual enviroments à la virtualenv, and as part of that testing I have to
>>> install Distribute in newly created environments a lot. Though normally running
>>> 2to3 as part of the Distribute installation is not a big deal, for this testing
>>> I'm doing, it does slow things down a little.
>>>
>>> While waiting for some tests to finish, I thought I might as well look into
>>> whether Distribute could be made to run on 2.x and 3.x from a single code base,
>>> thereby avoiding the 2to3 step.
>>>
>>> I've made an attempt, and things seem to have gone reasonably smoothly: the
>>> conversion is done and all unit tests pass on 2.7, 3.2, 3.3 (my branch).
>>
>> We still need to support Python 2.4, right? That's a trickier issue.
>> But including six.py might help.
>
> Afaik you can't catch exceptions in a way that is source-compatible with python 3.x and <2.6 due to the switch from "except <class>, <variable> to "except <class> as <variable>".

You can, it just isn't particularly pretty - virtualenv and pip access
the variable via  sys.exc_info()[1], eg:

except Exception:
        e = sys.exc_info()[1]

Paul


More information about the Distutils-SIG mailing list