Python AppStore / Marketplace

Steve Holden steve at holdenweb.com
Tue Mar 3 18:58:50 EST 2009


Marcel Luethi wrote:
> Hi Steve
> 
[I've probably replied to this once already, but here's another try]

> I really appreciate your feedback!
> Certainly I'm no expert "for the many differences in package formats and
> install requirements between the different platforms".
> 
> But let me explain a bit more:
> I don't have the idea that the multi-platform client should handle all
> the different package formats - instead it should define a new one: a
> simple zip-file.

OK, but have you asked yourself why the "simple zip file" isn't the
current basis of any Python distribution format?

> For me "self-contained, independent of an already installed Python"
> means that there is a complete, isolated Python environment for each app
> (see virtualenv). So Python would go into APP/lib/..., APP/bin/... and
> the app itself into APP/app/... Certainly there would be also some more
> files like the app icons and a description file APP/app.xml
> The packaged app is a zip/gzip of the whole APP directory. Installing is
> simply unpacking to a defined directory (into something like
> PythonApps/APP) and setting it up as an os app.
> 
This might work. I have for a while now advocated that each Python
application should carry its own interpreter and all other dependencies
with it. This doesn't solve all problems, though: imagine two apps with
different versions of the same library using incompatible media formats ...

> Because there is a complete Python environment for each app (disk space
> and bandwidth are cheap nowadays!) and all 3rd party libs are
> "integrated" there shouldn't be any other local dependencies. So there
> could be APP1 with a Python 2.5.2 + a wxPython/wxWidgets and another
> APP2 with Python 2.6.1 + PyQt4.
> (This is something I'm not really sure about: is it possible to setup
> all binary 3rd party libs «*.so/*.pyo/*.dll/*.pyd/...» into an isolated
> Python environment?)

Time, perhaps, for a little research into what the "simple zip file"
actually needs to contain and where it gets dropped?

> Of course there can't be a single APP1 for all possible platforms. But
> there could be one setup for each: APP1_Linux, APP1_MacOsX10.5, APP1_WinXP
> The developer has to setup/test every supported platform anyway.
> 
The recently announced Snakebite project, when it gets off the ground,
might be able to offer helpful resources. Mike Driscoll has done some
work on building Windows installers for Python apps, though they were to
integrate with an existing Python installation.

> The "bootstrap" (standing on the shoulders of giants) could work like this:
> - first there is a base app "Python 2.5.1 for Mac OS X 10.5" built by
> developer A
> - next developer B creates "Django 1.0.2 for Mac OS X 10.5" based on the
> one above
> - then developer C integrates Pinax into B's app and creates "Pinax
> 0.5.1 for Mac OS X 10.5"
> 
Why do you need a "Python x.y.z for Mac OS 10.5" if every app brings its
own Python with it?

> All those "apps" could be found in Python AppStore and a developer could
> search for the one which matches his requirements best. His
> implementation cost is therefore minimized.
> 
A developer could, perhaps, but we need to think of the end-users who
will not have the sophistication to make such decisions.

> A iTunes-like client would allow the end-user to find apps - assumed
> that all (or most) developers upload their apps into the one and only
> Python AppStore.

Or that the AppStore is suitable distributed. This, I think, is possibly
the most fanciful part of the scheme. What does this "iTunes-like"
client do for the user?

> The client (there should be one for every supported platform) is a
> front-end application for the (PSF-) hosted "super-cheeseshop", which
> end-users are not expected to access directly.
> 
> 
> Is my nirvana really that far away? ;-)
> 
Well it doesn't seem to be getting closer very fast ... but I wish you
luck, and hope to see progress.

regards
 Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/




More information about the Python-list mailing list