Installation
CCSDSPy is a pure-Python library for reading CCSDS telemetry packets that follow the Space Packet Protocol used by NASA and ESA missions. It is published on PyPI, so installing it is a single pip command, and it has only two runtime dependencies.
Install with pip
Install the latest release from PyPI:
pip install ccsdspy
To install into a specific environment, run pip from that environment's interpreter so the package lands in the right place:
python -m pip install ccsdspy
The most recent release at the time of writing is 1.4.3 (published November 2025).
Installing inside a virtual environment keeps CCSDSPy and its dependencies isolated from your system Python. Create and activate one first with python -m venv .venv && source .venv/bin/activate (use .venv\Scripts\activate on Windows), then run the pip install command above.
Dependencies
CCSDSPy declares two runtime dependencies, which pip installs automatically:
| Package | Minimum version | Role |
|---|---|---|
numpy | >=1.8.0 | Vectorized bit shifting and masking; packet fields are returned as NumPy arrays. |
bitstruct | >=8.17.0 | Bit-level packing and unpacking of packet fields. |
Neither dependency has an upper version bound, so current NumPy releases are supported.
NumPy is a hard requirement, not an optional extra. Every field parsed from a packet — whether defined with PacketField or PacketArray, and whether read by FixedLength or VariableLength — is returned to you as a NumPy array, so NumPy is always installed alongside CCSDSPy.
Supported Python versions
The project sets requires-python = ">=3.6" and publishes wheels classified for the following interpreters:
| Python | Supported |
|---|---|
| 3.6 | Yes |
| 3.7 | Yes |
| 3.8 | Yes |
| 3.9 | Yes |
| 3.10 | Yes |
| 3.11 | Yes |
| 3.12 | Yes |
| 3.13 | Yes |
While the package metadata still allows Python 3.6, those releases are long past their upstream end-of-life. For new work, use a currently maintained Python (3.9 or newer) so you also get supported NumPy builds.
Verify the installation
After installing, confirm that the package imports and check the installed version:
python -c "import ccsdspy; print(ccsdspy.__version__)"
This should print the version you installed (for example 1.4.3). You can also confirm that the core API objects are importable:
# Illustrative example — confirms the public API is available.
import ccsdspy
from ccsdspy import FixedLength, VariableLength, PacketField, PacketArray
print(ccsdspy.__version__)
print(FixedLength, VariableLength, PacketField, PacketArray)
If both commands run without an ImportError, CCSDSPy and its dependencies are installed correctly and you are ready to define a packet layout. The four imported objects are the building blocks you will use throughout the rest of this guide:
FixedLength— reader for packets whose layout is the same in every packet.VariableLength— reader for packets that contain variable-length or expanding fields.PacketField— defines a single scalar field (name, data type, bit length).PacketArray— defines an array field with a shape and element layout.
Sources
- CCSDSPy documentation (User Guide) — redirected from
https://ccsdspy.readthedocs.io/en/latest/ - CCSDSPy on GitHub
- CCSDSPy on PyPI — supported Python version classifiers and release history
pyproject.tomlin CCSDSPy/ccsdspy —requires-pythonand runtime dependency declarations