the immediate blocker when trying to run this Python project is that a native package deep within its dependency graph won’t compile without gcc-12 even though gcc 15 was released in August last year
that’s not even targeting gcc 14 which was released in 2024
and to hardcode this expectation without a Dockerfile or some Python-native mechanism to pull in a specific version of a C/Cxx compiler …
🐍 🤡


Why do you need gcc to compile a Python program? Which project do you talk about? In such cases its probably the best to run the application in a virtual machine. To me sounds like either a neglected project or designed to run in a docker image maybe? When was it updated last?
some programs that require intensive computation would have compiled code for performance reason. scipy and numpy comes to mind. i also remember needing to compile stuff during a pip install for postgresql integration library.
this is pretty common in interpreted languages/runtimes like Python, Node.js, Ruby, etc where a dependency is written in C or C++ or Rust or something else when the performance benefit is worth the cost of abandoning the primary language
the amusing/horrifying part is that Node.js actually depends on a Python script for this, so any Node.js application with a C/C++/Rust dependency actually needs Python installed somewhere
e.g. https://github.com/pyca/cryptography is a Python dependency that requires the Rust compiler/toolchain if
pip/pipx/uvcan’t find a pre-compiled version for your systemas far as i can tell, the project is alive and well, frequent and recent commits, and all the dependencies involved here are on their latest versions
and yeah, i know i can fix this with a VM or a Dockerfile and i’ll probably have to
but my point is that Python is kinda’ hot garbage for sharing code that depends on other shared code
it’s a terrific language by itself and sharing code that only depends on the standard library is perfectly fine, but as soon as we share code that depends on other third-party code we introduce inevitable suffering
I see. My assumption was you had a problem with a certain application, and my reply was from that viewpoint.
I 100% agree that Python programs relying on binary programs can be really complicated. In fact one of my projects requires a third party binary program to be installed, but I do not build it from source and just require it to be available on the system. And I encountered lot of issues when trying to create AppImage and sharing in certain environments. Actually this made me learn Rust, so I have a real compiled language in my repertoire for future projects when needed.
hehe, this exact same problem but in Node.js drove me towards Rust, as well 🦀
there are widely-used Rust crates that wrap C/C++ code and there are the …-sys crates that expose bindings for dynamically-linked dependencies, but i’ve never encountered one that needed a specifically-ancient version of GCC
If it’s a depdency nested deep in the dependency graph, that doesn’t necessarily mean I abandoned my project. I might be using this dependency of a dependency in my project and don’t notice anything, if there is a precompiled version for the (Python/Linux/…) distribution I’m running on my machine, so I might not notice that. It might even be, that I keep my dependencies up to date, but someone up the chain isn’t. And maybe there isn’t really a viable alternative to that one dependency that pulls that package in.
There are plenty of python libraries which have compiled components, such as pandas, which is compiled on install via
pip install. Some package managers have precompiled binaries, but you would need to make sure you have the right version for the project.There’s a few LLM packages out there that need compiled code
yeah, I think, at least initially, we had many data scientists lacking a little in terms of development practices around code rot and dependency management