5 ms·
What you feel with python is what I feel with JS managing npm and package.json which has dependency issues. With python it always has been pip install package
by kapitanjakc 4y ago
What you feel with python is what I feel with JS
managing npm and package.json which has dependency issues.
With python it always has been
pip install package and we are done.
Although I do share your pain with versioning. I once spent a week debugging an issue only to find out that there's a fixed version available.
- DangitBobby 4y agoI used to feel this way in the JS ecosystem. It's been quite a while since I've encountered something insurmountable (unless it's something like Bit using bespoke packaging).
- jkrubin 4y agoOnce I switched to pnpm many of those problems went away for me. I manage a slew of js/ts monorepos and pnpm is a god send, not because of performance or workspaces, but because things get resolved sanely.
- chrismorgan 4y agoI find a difference between managing and using. As a user of an application: `npm install` just works (same with `cargo build`). For Python, I’ll probably do `python -m venv env; . env/bin/activate` and then, well, it’s probably `pip install -r requirements.txt`, but sometimes it’ll be other things, and there are just too many options. I may well add --ignore-installed and use some packages installed locally of potentially different versions, e.g. for setting up Stable Diffusion recently (first time I’ve ever used the dGPU on my laptop) I wanted to use the Arch Linux packages for PyTorch and the likes. For managing dependencies in an existing library or application (as distinct from starting from scratch, where you’ll have to make several extra choices in Python, and where npm is badly messed up for libraries), both npm and Python are generally fairly decent, but the whole you-can-only-have-one-version-of-a-library thing from Python lends itself more to insurmountable problems. My personal background: many years of experience with both npm and Python, but I’ve never done all that much packaging in either. (Also many years of Rust, and I have done packaging there, and it’s so much easier than both.)
- moring 4y ago> With python it always has been pip install package and we are done. The worst I encountered was a somewhat lengthy manual to build a project (cannot remember what it was), and not only did you have to manually install all required dependencies -- npm automates this by having an npm-readable list in package.json -- but after running all those commands, the last note said something like "oh BTW, whenever we wrote "pip" above we actually meant "pip3", use that instead, and if you did it wrong, there's no way to undo it."
- kapitanjakc 4y agoAh the classic boogaloo of them finding it was pip3 and adding it tocs in the last... I agree with that, its pretty painful