Registry / data / eckitlib

eckitlib

JSON →
library2.0.7.20pypypi✓ verified 90d ago

EcKit is a robust, cross-platform C++ toolkit developed by ECMWF, providing an abstraction layer for operating system features like multi-threading, JSON/YAML parsing, object serialization, file-system abstraction, and linear algebra. The `eckitlib` Python package serves as Python bindings for this core C++ toolkit, acting as a foundational component for higher-level scientific computing libraries within the ECMWF 'earthkit' ecosystem. It is actively maintained with frequent updates.

pip install eckitlib
INSTALL
IMPORT
SIG · ECKITLIB
E
eckitlib
datapythonv2.0.7.20
Install
2.1s avg
Import
—
Disk
64MB
Pass rate
5/ 10
Env Coverage5 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v2.0.7.20 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.920 runs
build_error
glibc
py 3.10–3.920 runs
installs and imports cleanly · install 2.1s · import 0.000s · 42MB
64MB installed
● package 64MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

eckitlib
✓ import eckitlib
eckitlib provides low-level bindings; specific classes/functions often vary and are best explored via introspection or higher-level ECMWF libraries built on top of it.

This quickstart demonstrates successful installation and basic import of the `eckitlib` package. Due to its nature as a low-level C++ binding, direct high-level Python API examples are not readily available in public documentation. Typically, `eckitlib`'s functionalities are exposed and consumed through higher-level ECMWF Python libraries like those under the 'earthkit' umbrella.

import eckitlib print(f"eckitlib installed successfully. Version: {eckitlib.__version__ if hasattr(eckitlib, '__version__') else 'unknown'}") # Further usage would depend on the specific functionalities exposed # by the Python bindings of the EcKit C++ toolkit, often consumed # by other ECMWF Python libraries (e.g., earthkit-data). # Example of potential (hypothetical) low-level interaction (API may vary): # try: # config = eckitlib.Configuration.from_yaml_string("key: value") # print(f"Parsed config: {config.get('key')}") # except AttributeError: # print("Configuration API not directly exposed or changed in this version.")
Debug
Known issues
gotchaWhen integrating with other libraries, particularly those dealing with network I/O or system resources, be aware of potential conflicts. Specifically, versions of `eckitlib` (e.g., >= 1.29.2) have been known to conflict with `pycurl` due to underlying `libcurl` dependencies.
fix
Review dependency trees for `libcurl` versions. Consider isolating environments or checking for updated versions of `eckitlib` and `pycurl` that resolve the conflict, or use an alternative to `pycurl` if feasible.
affects: >=1.29.2
gotchaOther ECMWF Python libraries (e.g., `odclib`, `eccodeslib`) often have strict version pinning on `eckitlib` (e.g., `eckitlib==1.32.4.8`). Upgrading `eckitlib` independently might lead to dependency resolution issues or runtime errors in these co-dependent packages.
fix
Always upgrade related ECMWF libraries in conjunction with `eckitlib`. Consult the documentation or release notes of dependent packages for compatible `eckitlib` versions to avoid conflicts. Consider using a common environment management tool (e.g., `conda`) to manage complex dependency graphs.
affects: All versions
gotchaThe `ecmwf/eckit` GitHub repository, which is the source for `eckitlib`, does not use GitHub Releases for versioning, making it challenging to track breaking changes or specific feature additions via traditional release notes. Changes are primarily tracked through commit history.
fix
Rely on PyPI versioning for the Python package. For deep understanding of changes, direct consultation of the C++ `eckit` repository's commit history may be necessary, especially the `python` directory within it.
affects: All versions
Errors
Common errors & fixes
CRITICAL - Please define a version for eckit
This error occurs during the `ecbuild` or CMake configuration process when building the underlying C++ 'eckit' library, indicating that the project's version is not explicitly defined in its `CMakeLists.txt` file.
fix
Ensure that the `project()` command in your `CMakeLists.txt` file (or the `ecbuild` call) explicitly defines the 'eckit' version, e.g., `project(eckit VERSION x.x.x LANGUAGES C CXX Fortran)`.
ERROR: Cannot install eccodeslib==X.Y.Z and odclib==A.B.C because these package versions have conflicting dependencies: eccodeslib X.Y.Z depends on eckitlib==P.Q.R, odclib A.B.C depends on eckitlib==S.T.U
This common `pip` installation error arises when different `earthkit` ecosystem libraries (like `eccodeslib` and `odclib`) have strict and incompatible version requirements for their shared dependency, `eckitlib`.
fix
Try to find compatible versions of the conflicting packages that satisfy `eckitlib`'s requirements, or consider using a dependency resolver like `uv` that might have better conflict resolution, or report the issue to the library maintainers for updated compatible releases.
ModuleNotFoundError: No module named 'eckitlib'
This error means the Python interpreter cannot find the installed `eckitlib` package. This typically happens if `eckitlib` was not installed correctly, the Python environment is not activated, or the installation path is not in `PYTHONPATH`.
fix
Ensure `eckitlib` is installed in your current environment using `pip install eckitlib`. If it's a complex installation with C++ bindings, verify that all build dependencies (like C/C++ compilers) were met during installation.
Segmentation Fault (core dumped)
A segmentation fault indicates a low-level memory access error in the underlying C++ code of `eckitlib` or one of its direct C++ dependencies. This can occur due to incorrect data handling, API misuse, or bugs within the C++ library itself.
fix
Review your code for potential misuse of `eckitlib`'s objects or functions, especially related to memory management or resource handling (e.g., closing already closed files). Ensure you are using compatible versions of `eckitlib` and its dependencies. If the issue persists with correct usage, it might be a bug in the library, and you should report it to the developers with a minimal reproducible example.
Upgrade
Version history
2.0.7.20latest on PyPI · released May 27, 2026
Audit
Dependencies
ecmwf/eckit (C++ project)requiredeckitlib is the Python binding for the underlying C++ EcKit toolkit, which it bundles. The C++ library itself relies on CMake for building.
Agent activity
12 hits · last 30 days
node
12
Resources
eckitlib — pip install eckitlib · libregistry