Comments (11)
from eqcorrscan.
Ok I ran the build_ext command, then tried to run the tests and get the same error. This time I installed eqcorrcan with the develop flag, not sure if that makes a difference.
from eqcorrscan.
from eqcorrscan.
Ah, on reading more closely, it looks like you don't have the openmp libraries installed? I had thought this was standard in gcc, more info to follow (and will update docs once we get this working).
p.s. eqcorrscan is now on condo-forge, and comes with fftw and openmp when installing from there, but you can't run the tests from there...
from eqcorrscan.
It looks like a linking error to the openMP libraries, but I don't know why it would be (tests on 16.04 run fine with standard setups). Can I check that gcc is the compiler that gets called by setup.py build_ext? It would usually be gcc unless you built your Python in an interesting way (although the current method also works for intel compilers).
from eqcorrscan.
I am just running anaconda with python version 3.6, shouldn't be anything unusual about it.
It turns out eqcorrscan/lib/libutils.cpython-36m-x86_64-linux-gnu.so doesn't exist, not sure what that means as far as possible failures in the compile chain.
Edit:
eqcorrscan/lib/libutils.cpython-36m-x86_64-linux-gnu.so does exist, I was erroneously looking at a different instance of eqcorrscan. When running the tests in the correct directory I am having the same issue though, undefined symbol.
How should I go about testing if gcc is the compiler being used? I stepped through finalize_options function in setup.py with the debugger and compiler variable was set to "unix" if that is useful.
Edit2:
conda list | grep gcc
produces this:
libgcc 4.8.5 2
This might be a related issue but conda installing gcc did not fix the issue for me. I will keep digging.
from eqcorrscan.
from eqcorrscan.
Okay, so I can recreate this error when I install gcc using conda, rather than using the system version of gcc. What I actually did was:
- create a new conda env (without installing gcc via conda)
- build eqcorrscan using pip
- tests pass
- installed gcc via conda
- tests fail with missing reference to GOMP functions
- installed openMP from conda
- tests fail with same errors
- clean out built files (remove build directory and any possible shared object in lib)
- rebuild eqcorrscan with pip
- tests pass
As follows:
conda create -n eqcorrscan python=3.6 colorama numpy scipy matplotlib obspy bottleneck pyproj
source activate eqcorrscan
pip install . #run from git repo directory
python eqcorrscan/tests/correlate_test.py
# Pass
conda install gcc
pip install . -U --no-deps
python eqcorrscan/tests/correlate_test.py
# Fail
conda install openmp
pip install . -U --no-deps
python eqcorrscan/tests/correlate_test.py
# Fail
rm -r build
rm eqcorrscan/lib/libutils.cpython-*.so
pip install . -U --no-deps
python eqcorrscan/tests/correlate_test.py
# Pass
In my case, the library built fine, but was built with a different version of libgcc and libgomp than in the conda env, which is fine - I don't know if this holds for you? Did you install gcc via conda after building the libraries?
You can check which gcc is being used by running which gcc
.
Also, if I make an environment including gcc:
conda create -n eqcorrscan python=3.6 colorama numpy scipy matplotlib obspy bottleneck pyproj gcc
It runs fine (and builds using the conda gcc).
from eqcorrscan.
Also note that you should be fine using the system gcc (which should have happened using the instructions on the website, so I don't know what happened there originally?).
When you update from the git repo you will need to clean out the built shared objects first, otherwise they will not be rebuilt.
from eqcorrscan.
Okay, it seems to work now with your suggestions. I think my original attempt to install eqcorrscan, without a virtual env, would have been similar to where you were at in step 4 listed above. The build directory would have existed, which was probably the reason the subsequent efforts failed with environments that should have worked had the build been removed.
Since compilation time is very small maybe build should be removed by default?
Thanks for your help.
from eqcorrscan.
I think removing build by default would be a good idea - might have to dig into setup-tools a little more to work out how that should be done.
from eqcorrscan.
Related Issues (20)
- Correlation time series HOT 1
- Template write / read merges traces in rare case where traces from same channel align exactly HOT 2
- Cannot find compiled libtuils on Windows HOT 1
- original template pick time and time after lag_calc is not same HOT 6
- Release 0.4.4 HOT 5
- [PACKAGING BUG] Template Creation - ValueError: Unknown window type (hanning) HOT 2
- Problem with low sample rates HOT 5
- Plotting return_figure docs do not match default
- Party.lag_calc unclear what happens if stream does not cover all detections
- WIP: Speed up a few slowdowns when handling large datasets HOT 11
- [HELP] Can't install EQcorrscan on Apple M1 from conda-forge HOT 3
- pre-processing GPU support
- pytest fixtures in correlate_test alter omp threads
- Int overflow error in decluster unreported HOT 1
- Suppressed self-detection correlations if resampled samples do not align
- [HELP] - I can't install in minicoda packages are not available HOT 5
- Version 0.5.0
- [HELP] - Installation of EQcorrscan HOT 3
- [HELP] - create template through FDSN client HOT 3
- [HELP] write_correlations has a too many values to unpack error. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eqcorrscan.