Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.


Repository files navigation

Build Status

⚠️ Discontinuation of the project

The pmemkv-python project will no longer be maintained by Intel.

  • Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
  • Intel no longer accepts patches to this project.
  • If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
  • You will find more information here.


Python bindings for pmemkv. Currently functionally equal to pmemkv in version 1.0. Some of the new functionalities (from pmemkv 1.1) are not yet available.

All known issues and limitations are logged as GitHub issues or are described in pmemkv's man pages.


  • Python 3.6 or later
    • along with python3-setuptools
  • python3-dev(el) - header files and a static library for Python
  • libpmemkv-dev(el) - at least in version 1.0 - native key/value library


Start by installing pmemkv (currently at best in version 1.0.2 or 1.1) in your system.

git clone
cd pmemkv-python

If pmemkv is installed in default directory (e.g. /usr):

sudo python3 install

or to rather install it locally (in '/home/user_name/.local/lib/python3.X/site-packages'):

python3 install --user

If pmemkv is in some other directory:

python3 build_ext --library-dirs=<path_to_pmemkv_lib_dir> --include-dirs=<path_to_pmemkv_include_dir>
python3 install --user


Python bindings includes automated test cases. Use following command to run test cases:

cd tests
python3 -m pytest -v


We are using /dev/shm to emulate persistent memory in examples.

They can be found within this repository in examples directory. To execute examples:

PMEM_IS_PMEM_FORCE=1 python3 restAPI/


After installation, docs can be generated using sphinx (to install, run: pip3 install sphinx) by executing commands:

cd doc
make html