drprojects / point_geometric_features

Python wrapper around C++ utility to compute local geometric features of a point cloud
MIT License
56 stars 5 forks source link

pgeof as a pip package #11

Closed drprojects closed 6 months ago

drprojects commented 7 months ago

Packaging pgeof as a pip package, free from the conda dependency of eigen3 would be great.

@rjanvier I think you were thinking of working on this at some point. Is this still something you are considering ?

rjanvier commented 7 months ago

yep, "new" pgeof use Eigen as submodule, to come this week

rjanvier commented 7 months ago

the current pgeof is already packaged for PyPI here https://pypi.org/project/pgeof/ pip install pgeof just do the trick.

drprojects commented 7 months ago

yep, "new" pgeof use Eigen as submodule, to come this week

Oh cool ! So, to be sure I understand correctly: you intend to release pre-compiled binaries for pgeof which can be installed with pip install pgeof without the need for explicitly installing eigen before with, say:

conda install -c omnia eigen3
export EIGEN_LIB_PATH="path_to_eigen_root_dir"

?

rjanvier commented 7 months ago

The current package on PyPI is precompiled for a combination of OSes and Python ABI (see the list here) https://pypi.org/project/pgeof/#files. The current 0.0.2 package on PYPI correspond of the current source tree of your repo, it's the outcome of the CI/CD run (ex. https://github.com/drprojects/point_geometric_features/actions/runs/8433008430, config file is https://github.com/drprojects/point_geometric_features/blob/main/.github/workflows/wheels.yml). I uploaded the package on my own account but it should be on yours (I already mention that on a previous issue, please claim your package on PYPI when you want to). Having your package on PyPI allow to install it right now like any other python package you could find on PyPI (numpy, torch...) by using the pip install package_name command (and since it's precompiled for most OSes, it should not require a compiler nor Eigen source code)

On my side, I'm working on a new version of pgeof which is slightly faster, embed more features (maybe too much for you, it's something we have to discuss) and a better cross platform compatibility. This version will comme with Eigen embed in the repo (source tree) as a git submodule. So, this way pgeof source repository should be self contained and could be compiled without having to d/l Eigen from another third party.

rjanvier commented 7 months ago

Maybe if you want to test the current package without risk, in your console try something like python -m venv testpgeof -> create a virtual env in the directory testpgeof source testpgeof/bin/activate -> activate the virtual env (now you are isolated from other python distributions in your system) python -m pip install pgeof -> install a precompiled wheel of pgeof from PyPI python -c "import pgeof;help(pgeof)" -> should display pgeof help deactivate -> deactivate your virtual env, come back to your current python distribution then rm your venv if needed

drprojects commented 7 months ago

Cool, thanks for the feedback. I will likely setup a DL machine from scratch in the coming days, will test it then !

rjanvier commented 6 months ago

@drprojects, I remember I put ... a placeholder in the copyright here https://github.com/drprojects/point_geometric_features/blob/main/LICENSE because it was the one from Ashleve. Maybe you could update the copyright with a proper attribution (Loic, you or your institution...). Thank in advance!

drprojects commented 6 months ago

Thanks for reminding me, I did not think of checking it. Just updated it and added you to it, since you have been actively pushing this project too !