[Distutils] Hello all :)

Vinay Sajip vinay_sajip at yahoo.co.uk
Fri Mar 4 16:04:44 CET 2011


James Mills <prologic <at> shortcircuit.net.au> writes:

> Hi, I'm James Mills.
> Very interested in how packaging and installation
> is going wrt Python 3.
> 
> I re-ported pip to Python 3 (1) but it doesn't seem to
> be very useful in general as other folks want to remain
> backwards and forward compatible with a single codebase.
> 

Hi James,

I just joined this list myself, as I have recently become actively interested in
pip, virtualenv and running them on py3k. I've also recently forked pip to make
a Py3K port (as an experiment) and am making what seems like good progress. From
my post to the virtualenv list:

A pip Py3k port needs to work with a virtualenv Py3k port. A
common codebase should IMO be maintained for Python 3.x and 2.x. My
experiments seem to indicate that this is feasible. An experimental
port of pip, virtualenv and virtualenvwrapper to Py3k is showing
promise.

Forks are here and only a few days old, so up to date:

https://bitbucket.org/vinay.sajip/virtualenv
https://bitbucket.org/vinay.sajip/virtualenvwrapper

With the above, I can create virtualenvs using either Python 3.2 or Python 2.7.1
(other versions not tested yet).

My pip fork is at

https://bitbucket.org/vinay.sajip/pip

and my pip changes are not yet public (still doing tests), but results are
encouraging. The aim for all Py3k porting that I do is to have a single code
base for 2.x and 3.x - which seems perfectly feasible for pip, virtualenv and
virtualenvwrapper. I've posted test results in this gist:

https://gist.github.com/852552

which can be summarised as

Vanilla pip trunk - tests with Python 2.7.1 - 102 run, 4  failures
Ported  pip trunk - tests with Python 2.7.1 - 102 run, 3  failures
Ported  pip trunk - tests with Python 3.2   - 101 run, 12 failures

All tests are with my virtualenv fork on a Ubuntu machine.

One issue which came up for me is that distutils-0.6.14 does not work with
Python 3.2, because of the abiflags configuration parameter which is new with
Python 3.2. I got around this using a tarball created from distribute trunk
("distribute-0.6.15dev.tar.gz") which I use with my virtualenv port.

Did you come across this issue? Are you using virtualenv3 with your pip fork?
How are your test results looking?

I think a single codebase for 2.x and 3.x is the way to go here - anything else
will be too much of a pain to keep in sync.  So far, I see no reasons why this
should not be feasible.

I'm waiting for Ian Bicking's comments: I made a pull request on my virtualenv
changes (which are IMO uncontroversial) but I guess he might be busy, what with
PyCon being next week.

If one of the distribute devs could give some idea on this list of when a
distribute-0.6.15 might be produced, that would be good. I can then use the
official distribute-0.6.15.tar.gz :-)

All in all, this porting exercise has not been as hard as I feared! I must be
missing something.

Regards,

Vinay Sajip



More information about the Distutils-SIG mailing list