Python and IDEs [was Re: Python 3 is killing Python]

Chris Angelico rosuav at gmail.com
Fri Aug 1 10:39:01 EDT 2014


On Sat, Aug 2, 2014 at 12:28 AM, Nicholas Cole <nicholas.cole at gmail.com> wrote:
> Actually, that's not right.  RiscOS had and OS X has (I'm sure the
> others do as well) a concept that is similar to a shared library.  But
> the joy of an application bundle is that installing an application
> does not scatter its own files all over the file-system, putting
> configuration files here, binary resources there, library files
> somewhere else, executable files somewhere else again.

Shared libraries are a code execution model. The question is, how do
you locate them? Let's suppose I write a program that requires the
Nettle cryptography library. I can't depend on you already having that
on your system; you might, but I can't depend on it. What do I do? Do
I include it in my application bundle, or do I have some small record
that says "and by the way, I need libnettle"? Including it in the
application bundle means there'll be duplicates everywhere, possibly
of slightly different versions. Not including it means there needs to
be some kind of system for resolving dependencies, which is exactly
what apt-get, yum, pacman, and so on are for.

The installer has basically three choices.
1) Install libnettle inside the application directory
2) Install libnettle to some system library directory
3) Don't install libnettle, and demand that someone else (perhaps the
user, or the system package manager) install it.

Option 1 results in duplications. (Unless one application is allowed
to access a library in another application's directory, which is a
HORRIBLE mess.) Option 2 is exactly what you're complaining about,
scattering files all over the FS. And option 3 is what package
managers are for. What are you advocating?

ChrisA



More information about the Python-list mailing list