Skip to content

Python with ctypes for an ancient machine #661

Description

@CsatiZoltan

I want to install a recent Python 3 (preferably Python 3.13) to be used with Nuitka on a cluster. That cluster has glibc 2.12 from 2010.
The Python installation must have the ctypes module available due to Nuitka. ctypes requires the libffi library, which I didn't manage to install because of the ancient toolchain.
So I wanted to give uv a try. I installed uv, then told it to install a Python 3.13:

$ uv python install 3.13
error: Failed to install cpython-3.13.5-linux-x86_64-gnu
  Caused by: Failed to download https://github.com/astral-sh/python-build-standalone/releases/download/20250612/cpython-3.13.5%2B20250612-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz
  ...

which makes sense because the cluster does not connect to the internet (I installed musl uv manually).
At least I know which Python version uv wanted to install. Then I downloaded that version and launched the interpreter:

$ ./python
./python: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./python)
./python: /lib64/libc.so.6: version `GLIBC_2.13' not found (required by ./python)
./python: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./python)
./python: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ./python)

It also makes sense, uv wanted to download a version linked with glibc.
My next attempt was to download a static musl version, namely cpython-3.13.5+20250612-x86_64_v4-unknown-linux-musl-noopt+static-full.tar.zst. Well, this Python has no runtime dependency, so it worked. However, ctypes couldn't be imported:

ModuleNotFoundError: No module named '_ctypes'

so probably this musl version was compiled without libffi.


I am running out of ideas. Is there a way to make Python 3 (with ctypes and Nuitka) work on this old machine?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions