Most of these problems are a struggle in many languages.
Different machines always have different versions of everything. Python actually makes it manageable with virtual environments and if that is not enough you can use Docker or other containers.
There is a lot of friction in the process but that is true for all deployment workflows. Maybe that will change in the future.
Regarding dependencies: If you have worked on application in C or C++ you likely no the pain of including 3rd party libraries.
Rust has cargo to manage that, but on the flip side you easily have 10s or 100s of dependencies which is a supply chain nightmare.