-
Notifications
You must be signed in to change notification settings - Fork 5
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
pip install trako fails #3
Comments
cc @yrathi |
Thanks, @tashrifbillah ! I am not sure about this error but maybe CMake's output helps? |
@haehn , please see the log that you asked for: By the way, when opening the issue, I didn't realize there was a That being said, I have not been able to install trako in the following environment at all:
(edited my issue description accordingly) |
Which OS are you running? Which compiler? The log file points to some C++ errors in the Draco library (overloading) so I expect some version mismatch. |
And you said it worked with python=3.6? |
I didn't. Please see my earlier comment with OS specification. It is a CentOS 7. You can send me the cmake/gmake build commands. Maybe I can also help in developing a robust installation scheme. |
I unfortunately don't know how to build it on CentOS 7. The |
Which Anaconda version are you using? |
Which is why it is wired that it failed on my machine.
We build all our software from a skeletal miniconda3 |
I can replicate the issue on a google cloud vm running centos7 Starting from a fresh instance:
and I get the same build errors as in the log. Looks like a |
From the log I posted:
Doesn't this bother us? |
@haehn how can I build just |
I am already working on it! |
Thanks @tashrifbillah - let us know what you find! I wouldn't worry about the ninja error since it appears to fall back to makefiles. |
@haehn, it appears that https://pypi.org/project/TrakoDracoPy/ installation fails in first place. After I took out 'six>=1.13.0',
'stringcase>=1.2.0',
# 'TrakoDracoPy',
'typing-extensions>=3.7.4.1',
'typing-inspect>=0.5.0',
Based on the above, I believe the error traces its root in https://github.com/seung-lab/draco/ which is what you try to build here. I can try to build draco from source and try to sort out the issue. |
Thanks, @tashrifbillah and @pieper ! |
Hi @pieper , I would like to share my experiment. Please see the hierarchy below:
|
Hi @tashrifbillah - thanks for digging in to this 👍 I can confirm that the google version builds for me and the seung version fails. But I do not get weird cmake errors like you did. Maybe because I installed the very latest release. Here's what I get for the seung version:
But then I get the same compile errors for the method overrides that you saw originally in trako. Let me see if I can come up with a fix. |
Hmm, looks like the seung version stripped out some But clang works for building draco - @tashrifbillah would clang be an option for you? This works:
But this fails:
@haehn would you be able to look and see if you can see what's going on in the pip part? Here's the error message:
|
Edit on October 28, 2020 Please follow this recipe for building. Two notes--
Hi @pieper ,
But contrary to what you observed, both works for me: CC=clang CXX=clang++ pip install trako
# and
conda create -y --name TRAKO python=3.6
conda activate TRAKO
cd haen/draco
CC=clang CXX=clang++ python setup.py install At least the build went fine. I am going to try with |
Ok - great. We can also maybe try to build against upstream draco rather than Seung's lab. |
Hello @haehn , I have been exploring this idea for a while. If you change this line to google/draco and then try /tmp/miniconda3-TrDrGoogle/envs/TRAKO/compiler_compat/ld: /tmp/miniconda3-TrDrGoogle/envs/TRAKO/lib/libdraco.a(geometry_metadata.cc.o): relocation R_X86_64_32S against symbol `_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC
/tmp/miniconda3-TrDrGoogle/envs/TRAKO/compiler_compat/ld: /tmp/miniconda3-TrDrGoogle/envs/TRAKO/lib/libdraco.a(dynamic_integer_points_kd_tree_decoder.cc.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
/tmp/miniconda3-TrDrGoogle/envs/TRAKO/compiler_compat/ld: /tmp/miniconda3-TrDrGoogle/envs/TRAKO/lib/libdraco.a(float_points_tree_decoder.cc.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/tmp/miniconda3-TrDrGoogle/envs/TRAKO/compiler_compat/ld: /tmp/miniconda3-TrDrGoogle/envs/TRAKO/lib/libdraco.a(attributes_decoder.cc.o): relocation R_X86_64_32S against symbol `_ZTVN5draco17AttributesDecoderE' can not be used when making a shared object; recompile with -fPIC
/tmp/miniconda3-TrDrGoogle/envs/TRAKO/compiler_compat/ld: /tmp/miniconda3-TrDrGoogle/envs/TRAKO/lib/libdraco.a(sequential_attribute_decoder.cc.o): relocation R_X86_64_32S against symbol `_ZTVN5draco26SequentialAttributeDecoderE' can not be used when making a shared object; recompile with -fPIC
collect2: error: ld returned 1 exit status
error: command 'g++' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for TrakoDracoPy
Failed to build TrakoDracoPy
ERROR: Could not build wheels for TrakoDracoPy which use PEP 517 and cannot be installed directly I traced the source of error to this line:
If you remove Given the above, maybe @pieper can help us finding a solution? I think trying to build from google/draco is a good idea since we haven't come this far with seung/draco. |
@tashrifbillah maybe try adding |
I tried adding here:
Again, I tried adding where you said, but getting the same error. |
@tashrifbillah are you allowed to use singularity? We could build a trako image. |
Sure, containerization is a way around with clang. But it's not an option on Partners HPC yet, so no. |
Do they specifically prohibit singularity or just not provide it? I was able to install it from source on centos7 on my vm (I don't use ERIS, or at least not for years). |
The first requirement is Centos7. Partners has only 3 compute nodes running Centos7. The rest are running Centos6. Maybe this is why they haven't installed it. On the other hand, I was under the impression that I need sudo to install singularity, no? |
You probably need to have some prerequisite packages, but then you can install singularity itself to your own userspace. Might be able to install the prereqs too I guess. I actually haven't tried it much but it seems like a possible workaround. Probably better to just get the link error fixed. Let's see what @haehn says. |
Yes, I agree let's try to get the linking fixed. But I have no idea how to fix it :) |
Maybe some of the sysadmins know this error since they are CentOS experts? |
Except it is not their job to help us develop software, so I wouldn't hold my breath. The problem addressed by this software and given solution sound promising, which is why I am just trying to make it usable by more people. In my experience, most Linux users are RHEL compared to Ubuntu where you may have perfected it. Anyways, when I get some more time, I might be able to find a workaround. |
The sysadmins helped me before because of the older CentOS versions so I would ask them. I appreciate you trying to debug - thank you. |
Way to reproduce error: cd TrakoDracoPy
pip install . --no-clean
cd /tmp/build/directory/from/above
Notice the already included
|
A more proper title of this issue should be: |
It looks like it is a known issue originating from skbuild: |
That is awesome @tashrifbillah ! I had no idea that singularity was an option on the cluster, but it sounds like an ideal solution. Will it satisfy the use case long-term? If so we don't need to work on the back porting project. |
Hi @pieper , it was not until recently. We pushed for its availability and got it.
It should. I agree, we may not need Kitware support for fixing this anymore (not sure if that is what you meant). |
That's great @tashrifbillah. Yes, I was referring to the project we were working on with @jcfr to change the compilation of trako to work with older OS versions. We can drop that project now. |
I was still planing on updating TrakoDracoPy so that wheels are published on all three platforms. |
The text was updated successfully, but these errors were encountered: