[Distutils] PEP 427

Daniel Holth dholth at gmail.com
Wed Jan 29 03:54:41 CET 2014

On Tue, Jan 28, 2014 at 8:04 PM, Evgeny Sazhin <eugene at sazhin.us> wrote:
> Hi,
> I saw that people from this list are responsible for Wheel related PEP.
> I'm comparatively new to the python packaging and need some help understanding the recommended way of dealing with python packages.
> I'm trying to create a development infrastructure that would allow for simple and unified ways of sharing, *deploying* and *reusing* the code within private entity. I can see that pip with virtual environments and requirements.txt is very similar to dependency management provided by maven or apache ivy. But there seems to be a disconnect between the egg carrying the possibility to be importable and executable, but in the same time considered to be deprecated format which is not fully supported by pip and virtualenv and wheel not having those basic questions answered...
> So, i would like to ask few questions about it :
> 1. I'm coming from java world, so it is bit hard to understand why new packaging format is not importable? What is the reason behind it? Wouldn't it be way easier to deal with the dependencies and imports?
> 2. Why unzipping and installing the wheel is the way to go? There is no need to unzip java jar to import it into your code, neither to run your code with it? Why wheel can't be used the same exact way?
> I would appreciate any insight about the development infrastructure the wheel designers have in mind.
> Thanks in advance,
> Eugene

The main reason the packaging format is not explicitly importable is
simply because Python hasn't had "jar-like" deployment for as long or
as consistently as Java. So while Java code universally uses a "get
resource" API to get stuff on the classpath, a a lot of Python code
will try to open a file. C extensions can't be loaded from inside zip
files. And it's a lot harder to edit .py files once they are zipped
up, unlike Java where only the compiled and non-editable .class files
are zipped.

ZIP import is a great feature but wheels aren't really designed for
it. It's more reliable that way.

More information about the Distutils-SIG mailing list