A fork of https://github.com/openfheorg/openfhe-python to add some missing functionality
yspolyakov 4e3993309d Merge pull request #77 from openfheorg/dev | 1 年之前 | |
---|---|---|
docs | 1 年之前 | |
examples | 1 年之前 | |
src | 1 年之前 | |
.gitignore | 1 年之前 | |
CMakeLists.txt | 1 年之前 | |
LICENSE | 1 年之前 | |
README.md | 1 年之前 |
Before building, make sure you have the following dependencies installed:
We recommend following OpenFHE C++ installation instructions first (which covers Linux, Windows and MacOS) and then get back to this repo.
You can install pybind11 by runnning:
pip install "pybind11[global]" # or alternatively, if you use conda:
conda install -c conda-forge pybind11
For custom installation or any other issues, please refer to the official pybind11 documentation in the link above.
To install OpenFHE-python directly to your system, ensure the dependencies are set up. Then clone the repository, open a terminal in the repo folder and run the following commands:
mkdir build
cd build
cmake .. # Alternatively, cmake .. -DOpenFHE_DIR=/path/to/installed/openfhe if you installed OpenFHE elsewhere
make
make install # You may have to run sudo make install
At this point the .so
file has been built. Your exact installation process will depend on your virtual environment.
Cmake will automatically find the python installation path, if unwanted, you can specify the python path by adding -DPYTHON_EXECUTABLE_PATH=/path/to/python
to the cmake command.
If you see an error saying that one of OpenFHE .so files cannot be found when running a Python example (occurs only for some environments),
add the path where the .so files reside to the PYTHONPATH
environment variable:
export PYTHONPATH=(path_to_OpenFHE_so_files):$PYTHONPATH
In some environments (this happens rarely), it may also be necessary to add the OpenFHE libraries path to LD_LIBRARY_PATH
.
Alternatively you can install the library and handle the linking via Conda. Clone the repository, open a terminal in the repo folder and run the following commands:
conda create -n ${ENV_NAME} python=3.{X} anaconda
where ${ENV_NAME}
should be replaced with the name of your environment, and {X}
should be replaced with your desired python version. For example you might have
conda create -n openfhe_python python=3.9 anaconda
It's recommended to specify the python path to avoid any issues with conda environments. To do this, run the following commands:
mkdir build
cd build
cmake .. -DPYTHON_EXECUTABLE_PATH=$CONDA_PREFIX/bin/python # Add in -DOpenFHE_DIR=/path/to/installed/openfhe if you installed OpenFHE elsewhere
make
make install # You may have to run sudo make install
The CONDA_PREFIX variable is set by conda, and points to the root of your active conda environment.
Then, you can develop the library:
mkdir lib
mv *.so lib
conda develop lib
which creates a lib folder, moves the built .so
file into that lib folder, and tells conda where to look for external libraries.
Note You may wish to copy the .so
file to any projects of your own, or add it to your system path to source from.
To get familiar with the OpenFHE Python API, check out the examples: