4 ms·
Python's package management is OK. The main culprit is .so libraries Think JNI or cgo management.
by est 1y ago
Python's package management is OK. The main culprit is .so libraries
Think JNI or cgo management.
- t43562 1y agoYes, I've never really understood the complaint about python packaging - building native code is not something that is ever easy to guarantee across multiple distributions and operating systems. Those native packages can be in any language and require any odd combination of tools to build. Who has truly solved that problem?
- nikisweeting 1y agowheels, conda, docker, firecracker, unikernel, flatpak
- t43562 1y agoflatpak, docker ? i.e. include an almost complete distribution just to make one package work? but what if you want that package to work in the distribution you have now? What if you need 2 different packages that are in different flatpacks or different docker images?
- staunton 1y agoSet them up, each in its own container, and use GRPC to communicate between them... (Not even kidding, I've seen people do this)
- nikisweeting 1y agoobviously don't try those first I'm just saying there's a stack of options to work with for any level of isolation you desire. start with wheels if you just want pre-built binaries, move up to conda if you need arch and OS-specific C libs that depend on system packages, flatpack or docker if you dont want those to mess up your host, or unikernel/firecracker/VMs if you need kernel modules or hardware virtualization.
- Orygin 1y agoIf you don't need to link C lib, you can build any combination of arch and OS for a golang program. The default tooling allows you to do so easily. If you need to link a C lib, there are ways to set it up to compile other OS (and maybe other archs).
- est 1y agotake numpy as an example, it's gfortran mixed with C. How does cgo handle that? And there's ffmpeg....
- Orygin 1y agoIf you got object files you can compile whatever if you have the compiler toolset. I have made a go program that links ffmpeg and is built from linux to Windows and Macos. It was not super easy but it's doable.
- RamblingCTO 1y agoI'll throw in BLAS and LAPACK. Fuck, what a nightmare it always has been to get scipy running. I've always ended up with a wild mix of conda and pip installed shit that just wouldn't work.
- blurbleblurble 1y agoIt is not okay (maybe uv fixes this?)
- est 1y agopure .py libs can be "vendorized" directly into project.