[Distutils] Beyond wheels 1.0: helping downstream, FHS and more

Paul Moore p.f.moore at gmail.com
Tue Apr 14 08:44:16 CEST 2015


On 14 April 2015 at 06:37, David Cournapeau <cournape at gmail.com> wrote:
> pywin32 is one of the most used package in the python ecosystem, and its
> post install script is not trivial.

And yet pywin32's postinstall script is completely virtualenv-hostile.
It registers start menu entries (not applicable when installing in a
virtualenv), registers itself as a COM server (once again, one per
machine), adds registry entries (again, virtualenv-hostile), moves
installed files into the Windows system directory (ditto) etc. And yet
for many actual uses of pywin32, installing as a wheel without running
the postinstall is sufficient. With the exception of writing COM
servers in Python (and maybe writing services, but I thing cx_Freeze
lets you do that without pywin32), pretty much every use *I* have seen
of pywin32 can be replaced with ctypes or cffi with no loss of
functionality.

I'd argue that pywin32 is a perfect example of a project where *not*
supporting postinstall scripts would be a good idea, as it would
encourage the project to find a way to implement the same
functionality in a way that's compatible with current practices
(virtualenv, tox, etc). Or it would encourage other projects to stop
depending on pywin32 (which is actually what is happening, many
projects now use ctypes and similar in place of pywin32-using code, to
avoid the problems pywin32 causes for them).

Paul


More information about the Distutils-SIG mailing list