-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Install script makes seemingly incorrect assumptions about PGEOF's environment #102
Comments
It seems that PGEOF's (terribly opaque) build system uses the system's libstdc++ without consideration of the conda environment. This is of course a PGEOF issue, but probably also an SPT issue since its install script makes assumptions about PGEOF's build system. |
Workaround for people facing the same issue: Separately build PGEOF in an environment with a sufficiently old libstdc++ (i.e. one at least as old as whatever is provided in the conda environment used by SPT), and change SPT's install script to install that wheel instead of the default one. |
Could you please create an issue on https://github.com/drprojects/point_geometric_features so we can address this over there ? |
A simpler workaround that compiling pgeof: rstudio/reticulate#1282 (comment) This is a bit hacky, but can be fixed by manually modifying where your But I agree this is not a final solution, we may need to fix something on https://github.com/drprojects/point_geometric_features side... |
@rjanvier do you know how to make |
I will try to reproduce it and debug this but a priori I feel weird that the scikit build system used by |
Thanks for giving it a try. I confirm that I could reproduce the same error on my end, when installing on a fresh conda env with our latest |
Confirmed too, it slip off the radar because I use SPT on a virtualenv on my side. it's ok with precompiled package (i.e. |
Yeah I hope to get around to that soon. Ideally I'd also propose a fix, but I have no knowledge on the build system used, so I found it very hard to control how it in turn invokes CMake. |
If you are interested, I could take a stab at attempting to convert pgeof to a more flexible plain CMake-based build (rather than CMake wrapped in scikit-build)? @drprojects : I'd just like to also say thanks for your extremely quick responses to both my recent bug reports. It's very impressive, and much appreciated! |
@gspr-sintef to be honest, although I did create the In the meantime if you need a dirty workaround, I managed to fix the issue with my above-mentionned hack: adjusting your conda symlinks to point to the correct PS: @gspr-sintef if you ❤️ or use this project, don't forget to give it a ⭐, it means a lot to us ! |
Hi @gspr-sintef. CMake used by sk-build-tool is pure CMake, so I guess you don't have to change anything apart in the CMakeLists.txt. I think it's flexible enough :D After investigation I would say in some aspects this behavior is normal because nothing tells us in conda env variables that we have to pick the libs in /condenv/lib (LD_LIBRARY_PATH is not redefined for example), and you will have to handle this with any CMake based file, no matter if it's called by sk-build-tools... I have posted a question in sk-build-core issue tracker in order to ask if there are some good practices in our specific case. Meanwhile, a quick alternative is to repair the wheel with auditwheels or to install a more recent libstc++ lib in your environement from conda-forge (libstdc++ is forward compatible) . Please open an issue in pgeof issue tracker in order to continue this discussion, thanks! |
Sure, but as far as I understand, it encapsulates CMake without making the full flexibility of CMake available to the user (i.e. to the person building the package).
CMake will typically let the user (i.e. the person calling the cmake tool during build, who doesn't have to be the author of the package or of its CMakeLists.txt) specify where to look for libraries. As far as I can tell, sk-build-tools hides away this functionality. |
of course you can pass option to encapsulated cmake, please read this https://github.com/scikit-build/scikit-build-core?tab=readme-ov-file#configuration |
Aha! I only saw the part that required modifying |
Hello, I got the same error but could not quite understand where the 'correct' version of libstdc++ should point to.
|
@biophase indeed the workaround you used indeed seems to the simplest solution for now. We are waiting to see if @rjanvier's question sk-build-core issue tracker allows a better way for Depending on this, I may or may not integrate a |
I decided to opt for integrating the conda-install fix in |
conda-install libstdcxx-ng to fix pgeof installation issue drprojects#102
In an effort to see if issue #101 is caused by incompatible Python versions or not, I have set up a clean environment that uses the included
install.sh
verbatim. Runningpython src/train.py experiment=semantic/kitti360
then results inI'm using Miniconda 23.3.1 in a clean environment with Python 3.8.19, running the provided install script as is. The script runs successfully. I've tried both the current latest commit (bb31689) and one from before the latest PGEOF changes (6b11e8e), both with the same result.
Rebuilding PGEOF from source results in the same problem.
The text was updated successfully, but these errors were encountered: