• brucethemoose@lemmy.world
    link
    fedilink
    arrow-up
    22
    ·
    edit-2
    2 days ago

    It’s kind of crazy how problematic pip is, though. There are enormous ecosystems like conda, poetry, arguably Docker all built around “pip not working right.”

    I see so many people want to install vllm or something with like a 95% crash and burn rate if they aren’t already proficient with Docker, complete with the spare disk space to basically ship a whole other machine.

    Meanwhile, massively complex Rust or Go or whatever packages… just work. With the native tooling, for me.


    To be clear, I like Python, and I believe many issues can be smoothed with time (like improving its JIT and maybe encouraging more typing in codebases). But pip and its ecosystem are forever cursed.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      9
      ·
      1 day ago

      pip is easily the worst thing about Python. But now that we have uv I would say the worst thing is the package/import system. I’m pretty sure only 1% of developers understand it, and it only really works properly if your Python code is a Python package.

      If you treat Python as a scripting language and just scatter loose files around your project and run them directly, it doesn’t work at all. Pain everywhere. Which is dumb as fuck because that’s like 80% of how people use Python.

      • brucethemoose@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 day ago

        Ugh yes I hate the import system too. I have to look it up every time and still don’t understand it, and it’s a hair away from messing up existing projects to the point where sometimes it does.

        I want to love uv, but:

        • It breaks some random compiled C packages. I ran into this the other day, and the associated issue on the package was basically “shrug we see it’s breaking, this dev is doing some weird shit”

        • I’d prefer to use the optimized/patched build of Python CachyOS provides (and the optimized Python compiled system packages), though this is largely OCD.

        • It’s not optimal for some PyTorch stuff, which is its own little ecosystem nightmare

    • rothaine@lemmy.zip
      link
      fedilink
      arrow-up
      14
      ·
      2 days ago

      People used to shit on npm all the time, and I believed them, because I didn’t have experience with anything else.

      Then I tried pip. Holy…I had to beg npm forgiveness for ever doubting it

      • tyler@programming.dev
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        1 day ago

        npm was bad, for a very long time. Then they fixed it, because they actually listened to other languages and did what they did. Python still refuses to do that. It’s quite insane because Ruby has had a solution for 15+ years at this point and Python could have directly copied it but refuses to. Python is absolutely the worst language I know of in regards to tooling.

    • oddlyqueer@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      1 day ago

      I’m glad it’s not just me lol every so often I’ll think “I haven’t done a python project in a while I’ll try FastAPI” or something and I have so many issues just getting the env set up.

      • brucethemoose@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 day ago

        It’s so ridiculous that many projects don’t even support pip+venv (much less system python packages. shivers). They literally check if that’s what you’re trying and pre-emptively fail.

        Some projects become impossible to run in any combination because some dependency (looking at you, sentencepiece) no longer works outside a narrow set of circumstances, unless you hand build some obscure github PR, disable all the dependency checks and cross your fingers and hope the wheel builds.

        And I’m sorry, but I don’t have 200GB of space, tons of spare RAM, and an intricate docker passthrough setup for every random python project. I just have like four different 3rd party managers (conda/mamba, uv, poetry… what’s the other one? Ugh)