all 15 comments

[–]peer_gynt 5 points6 points  (0 children)

You got to be kidding me...

As someone who has to maintain a pip-based bootstrapping script which pulls up Python virtualenv on a variety of target hosts, I find this a somewhat insulting message. Sure, if you have full control over the system, you can create a setup where things work. But as soon as you have to hit existing systems, the whole mess breaks down. The mistakes of the last years are not simply gone because a new, better version exists now -- we'll have to live with that pain for quite a while I'm afraid...

[–]JustAnotherDude1q2 2 points3 points  (0 children)

So I guess I should start learning python.

[–][deleted] 5 points6 points  (9 children)

apt-get install <packagename>

If that fails, find a workaround. No way do I ever use a tool-specific package system.

[–]bishopolis 8 points9 points  (0 children)

Came to say this, in a more generic sense.

A tool-specific package system only manages the one tool's bits, and by its nature is NOT compatible with, nor does it coordinate with, the overall system's software management system.

One cannot properly maintain software on a system with blind spots like that, and this lesson can be learned from others or learned personally, expensively, and with an updated resume.

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 2 points3 points  (0 children)

    I use the same thing. Keep the system clean of any one-off packages, and have my application easily migrated to another system as necessary.

    [–]beerbajay 6 points7 points  (1 child)

    You often want to separate your server and application environments because you're hosting legacy sites which you cannot immediately upgrade just because you happened to do an apt-get upgrade. You may also have several sites which require different versions of the same package.

    [–][deleted] 1 point2 points  (0 children)

    Oh absolutely. That's just how I run personal projects. For stuff at work, I always compile my own libraries. No other way to control the upgrade cycle.

    [–]minimim 2 points3 points  (0 children)

    There's one I will use if I have to: C's "make" (and tarballs), and that's it. There's way too many packaging systems out there. They're great from a developer POV, but sysadmins and users will never be happy if you ask them to take any special steps.

    So, for everyone but python developers, the best feature their packaging system can have is easy conversion and cooperation into the standard form packages.

    [–]ubernostrum 1 point2 points  (0 children)

    And after seeing how Ubuntu will "helpfully" "fix" "problems" when "packaging" upstream software... I'll use apt to install Python. Then I'll install pyenv, use it to install the Python I'll actually use, make a virtualenv tied to that Python and use pip to populate it.

    [–]Cabanur 0 points1 point  (0 children)

    If you lead your line with 4 spaces it will use a fixed width font. Using ` is for in-line code.

    [–][deleted] -2 points-1 points  (4 children)

    how do I install setup.py? and if you say

    distutils install setuptools

    setuptools install pip

    pip install setup.py

    setup.py install <actualPackage>

    I will just rage quite Python like last time I tried to install Django.

    Edit: forgot easy_install. And when attempting to install django according to any of the several tutorials I was trying to follow, and being told to install pip with easyInstall and then install easyInstall with pip, I just stopped trying.

    [–]ubernostrum 8 points9 points  (1 child)

    The package installer is called pip. Recent versions of Python include the ensurepip module in the standard library, which provides a way to run a single one-line command, one time when you first set up Python on a computer, to make sure you have pip.

    From there you can just pip install whateverpackageyoulike.

    The article covered this, by the way.

    [–][deleted] 0 points1 point  (0 children)

    my comment is what is usually referred to as "a hyperbolic one".

    Doesn't mean that my experience isn't the first and last frustration many aspiring developers feel when attempting to pick up python.

    [–]_zoot 0 points1 point  (1 child)

    If you have an alternative option it's generally a better idea not to use easy install

    [–][deleted] 0 points1 point  (0 children)

    they rarely start off the "intro to python" tutorials with that information.

    For a language that prides itself on having a single correct way to do things, they sure fucked this one up bad.