@acowley *This year*, I have found "pdm", and I was like "oh, this fixes it". It incorporates the previous mix of semi-broken Python tools, is compatible with the parts that work, replaced the parts that don't work, and presents a single frontend so you don't have to know the history of semi-broken tools to use this one actually working tool. Unfortunately I was not able to get it working with the LSP and I have not yet looked into whether that was "my fault" (it actually might have been)