Python 2 to 3 conversion - embrace the pain

Chris Angelico rosuav at gmail.com
Mon Mar 16 18:02:38 EDT 2015


On Tue, Mar 17, 2015 at 4:20 AM, Michael Torrie <torriem at gmail.com> wrote:
> A bit off topic here, but all of this highlights major weaknesses in the
> Linux software distribution model. While we Linux nerds like to poke fun
> at Windows for not even having a proper package manager until Windows
> 10, in fact the package manager is not always the best way to go.  Works
> well for core system parts, and for distro maintainers.  But it sucks
> miserably for developers, and to a lesser degree, end users.  I should
> be able to have a stable core distro like RHEL 7 (or any distro), but
> develop and distribute apps for Python 3 easily.  Say what you want
> about Red Hat's Poettering, but what he says about this problem makes a
> lot of sense:
> http://0pointer.net/blog/revisiting-how-we-put-together-linux-systems.html.

It most assuredly does NOT suck for end users. Apart from issues of
naming (grab "avconv" or "ffmpeg"?), it's easy - if someone needs to
do audio manipulation, I can tell him/her to "sudo apt-get install
sox" and that'll get the necessary program on any Debian-based distro,
and likewise one command for any Red Hat distro. I'm not sure what you
mean by "for developers" - do you mean that it's hard to package your
software for each distro? Because the package manager benefits you
even if you don't package your own program. Imagine you need a
PostgreSQL database for your Python application - which also means you
need psycopg2, of course. How do you go about writing installation
instructions?

* WINDOWS *
1) Install the latest Python 3 from https://www.python.org/downloads/windows/
2) Install the appropriate version of psycopg2 from
http://www.stickpeople.com/projects/python/win-psycopg/
3) Install the latest PostgreSQL from
http://www.postgresql.org/download/windows/
4) Install my program from blah blah blah

* LINUX: Debian-based *
1) As root, type: apt-get install postgresql python3-psycopg2
2) Install my program from blah blah blah

* LINUX: Red Hat-based *
1) As root, type: yum install postgresql python3-psycopg2
2) Install my program from blah blah blah

(I don't have a Red Hat system handy to check, so the above examples
might need to be tweaked. But you get the idea.)

Without actually going to any effort to build your own packages, you
can still take advantage of one-command installation of all your
dependencies. Without a package manager, you have to assemble them
from all over the internet.

I call that a benefit :)

ChrisA



More information about the Python-list mailing list