Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This post is a snapshot of one webdev's toolbox. It certainly is indicative of webdev's predilection for increasingly complex and opaque tooling, mixed-markup formats, and over-engineering (if it can even be called engineering).

You don't really need any of that stuff. That whole tooling ecosystem undergoes a rewrite every couple years, anyways, so I predict this post will not age well.

Just stick to setup.py, pip, and virtualenv. It's sufficient into all thy needs.



I was with you up until your last sentence. pip and virtualenv are hacky kludges that grew legs and lungs, that's how old python's issues around deployment are, there's an era before pip and virtualenv.

There should be an abstraction for it (deployment, versions, import hacking) like what pathlib did for file path manipulation.

We have a classic lava-flow pattern. http://mikehadlow.blogspot.com/2014/12/the-lava-layer-anti-p...


What makes you think the newer tools are better than pip and virtualenv?

(They most likely use some of those in the background)

Edit: the link you quoted is very relevant

> We developers should recognise that we suffer from a number of quite harmful pathologies when dealing with legacy code:

> We are highly (and often overly) critical of older patterns and technologies.

> We think that the current shiny best way is the end of history; that it will never be superseded or seen to be suspect with hindsight


> What makes you think the newer tools are better than pip and virtualenv?

I don't. Heck, maybe they are. I don't use them.

My point is that rather than being the beneficiary of Python's excellent abstraction powers, distribution et. al. is and has been a mess for decades.

Here's a history of the sordid mess starting from 1998: "The distutils-sig dicussion list was created to discuss the development of distutils." https://www.pypa.io/en/latest/history/

FWIW, Since pip and virtualenv became relatively stable and "blessed" and PyPI has matured the only new thing I've tried is Anaconda.

Unfortunately my main Python project right now uses Tkinter and the folks who make Anaconda have a circular dependency in their build system such that you need python to build Freetype so their Python/Tkinter/TCL/Tk has gruesomely-bad support for fonts, so my project looks like a potato. https://github.com/ContinuumIO/anaconda-issues/issues/6833 Someone has put in a PR to hopefully fix it, and-- ah! --it seems to have gotten some attention earlier today: https://github.com/conda-forge/tk-feedstock/pull/40 Fingers crossed for great good!

Anyhow, things are rough all over, eh?


pip and virtualenv have the benefit of being stable and de-facto standards, due to their longevity. That matters.

Virtualenv is hardly a hack. It just sets env vars.


What do you think a hack is? I ask in a friendly way.


I sort of agree, but also think you're handwaving away some actual pain points. pyenv makes it really easy to manage multiple Python installations on the same system. Also, while I prefer pip-tools over poetry for its simplicity and the fact that it has stood the test of time, both accomplish the goal of pinning all direct and transitive pip dependencies.


>he hasn't heard of virtualenv -p


pyenv manages the actual Python installation. It has nothing to do with virtual environments and does not replace them or manage them.


This

The post wants to sell the point that "poetry is like npm" as if it was an advantage. It isn't. (Not that npm is bad per se)

Can't wait for left-pad python the way things are going...




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: