Skip to content
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

Python binding installation difficulty on Mac OSX 10.15 #55

Closed
iancze opened this issue Nov 17, 2019 · 11 comments
Closed

Python binding installation difficulty on Mac OSX 10.15 #55

iancze opened this issue Nov 17, 2019 · 11 comments

Comments

@iancze
Copy link

iancze commented Nov 17, 2019

It seems as though I am encountering a similar build issue as #41, but the suggested fix there hasn't helped (yet).

I am on mac osx 10.15 and am following the installation instructions here: https://finufft.readthedocs.io/en/latest/install.html#tips-for-installing-dependencies-and-compiling-on-mac-osx

I installed libomp and fftw using homebrew. I copied the mac clang makefilecp make.inc.macosx_clang make.inc. I created a new python 3.7 conda environment, activated it and installed pybind11 and numpy to it.

I set the environment variable
export MACOSX_DEPLOYMENT_TARGET=10.15.

Then I ran make lib and make test and as far as I can tell, all tests passed successfully (pasted at bottom).

Then I ran make python which successfully calls my python3 pip (labeled pip, not pip3, since that's the system python3) from my conda environment, and successfully builds the python package. When it goes to import the package to run the demo, however, I get the error that

finufft git:(master) ✗ make python
pip install .
Processing /Users/ian/Documents/Programming/Python/finufft
Requirement already satisfied: numpy in /Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages (from finufftpy==1.1.1) (1.17.3)
Requirement already satisfied: pybind11>=2.2 in /Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages (from finufftpy==1.1.1) (2.4.2)
Building wheels for collected packages: finufftpy
  Building wheel for finufftpy (setup.py) ... done
  Created wheel for finufftpy: filename=finufftpy-1.1.1-cp37-cp37m-macosx_10_7_x86_64.whl size=161109 sha256=820242a22e13678cbfa4c3684cbf991806acfe0f809ad20cebcdefdffff9862d
  Stored in directory: /private/var/folders/2l/wgjx7ly12qg9f6whx9jy5_wh0000gn/T/pip-ephem-wheel-cache-keoij7ur/wheels/ec/6c/a7/7d27a5be903dd29d08bb76dc4bbcdb6265dbec8937ba15498b
Successfully built finufftpy
Installing collected packages: finufftpy
  Found existing installation: finufftpy 1.1.1
    Uninstalling finufftpy-1.1.1:
      Successfully uninstalled finufftpy-1.1.1
Successfully installed finufftpy-1.1.1
python python_tests/demo1d1.py
Traceback (most recent call last):
  File "python_tests/demo1d1.py", line 5, in <module>
    import finufftpy
  File "/Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages/finufftpy/__init__.py", line 23, in <module>
    from finufftpy._interfaces import nufft1d1,nufft1d2,nufft1d3,nufft2d1,nufft2d1many,nufft2d2,nufft2d2many,nufft2d3,nufft3d1,nufft3d2,nufft3d3
  File "/Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages/finufftpy/_interfaces.py", line 12, in <module>
    import finufftpy_cpp
ImportError: dlopen(/Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages/finufftpy_cpp.cpython-37m-darwin.so, 2): Symbol not found: ___kmpc_barrier
  Referenced from: /Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages/finufftpy_cpp.cpython-37m-darwin.so
  Expected in: flat namespace
 in /Users/ian/.miniconda3/envs/tree-test/lib/python3.7/site-packages/finufftpy_cpp.cpython-37m-darwin.so
make: *** [python] Error 1

Any help would be greatly appreciated. Thanks! I still get the same error if I do pip install .


Results from make lib and make test.

finufft git:(master) ✗ make lib
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/spreadinterp.cpp -o src/spreadinterp.o
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/utils.cpp -o src/utils.o
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft1d.o src/finufft1d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft2d.o src/finufft2d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft3d.o src/finufft3d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft1d.o src/dirft1d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft2d.o src/dirft2d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft3d.o src/dirft3d.cpp
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/common.cpp -o src/common.o
gcc -c -fPIC -O3 -I src -Xpreprocessor -fopenmp contrib/legendre_rule_fast.c -o contrib/legendre_rule_fast.o
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp fortran/finufft_f.cpp -o fortran/finufft_f.o
ar rcs lib-static/libfinufft.a src/spreadinterp.o src/utils.o src/finufft1d.o src/finufft2d.o src/finufft3d.o src/dirft1d.o src/dirft2d.o src/dirft3d.o src/common.o contrib/legendre_rule_fast.o fortran/finufft_f.o
g++ -shared -Xpreprocessor -fopenmp src/spreadinterp.o src/utils.o src/finufft1d.o src/finufft2d.o src/finufft3d.o src/dirft1d.o src/dirft2d.o src/dirft3d.o src/common.o contrib/legendre_rule_fast.o fortran/finufft_f.o -o lib/libfinufft.so -lfftw3 -lm -lomp -lfftw3_threads -lomp
echo "lib-static/libfinufft.a and lib/libfinufft.so built, multithreaded versions"
lib-static/libfinufft.a and lib/libfinufft.so built, multithreaded versions


(tree-test) ➜  finufft git:(master) ✗ make test
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/finufft1d_basicpassfail.cpp lib-static/libfinufft.a -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/finufft1d_basicpassfail
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/testutils.cpp src/utils.o -o test/testutils
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/finufft1d_test.cpp src/spreadinterp.o src/utils.o src/finufft1d.o src/dirft1d.o src/common.o contrib/legendre_rule_fast.o -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/finufft1d_test
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/finufft2d_test.cpp src/spreadinterp.o src/utils.o src/finufft2d.o src/dirft2d.o src/common.o contrib/legendre_rule_fast.o -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/finufft2d_test
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/finufft3d_test.cpp src/spreadinterp.o src/utils.o src/finufft3d.o src/dirft3d.o src/common.o contrib/legendre_rule_fast.o -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/finufft3d_test
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/dumbinputs.cpp lib-static/libfinufft.a -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/dumbinputs
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp test/finufft2dmany_test.cpp src/spreadinterp.o src/utils.o src/finufft2d.o src/dirft2d.o src/common.o contrib/legendre_rule_fast.o -lfftw3 -lm -lomp -lfftw3_threads -lomp -o test/finufft2dmany_test
test/finufft1d_basicpassfail
(cd test; \
	export FINUFFT_REQ_TOL=1e-12; \
	export FINUFFT_CHECK_TOL=1e-11; \
	./check_finufft.sh)
numdiff not installed
FINUFFT library check at requested accuracy 1e-12 ...
Test number 1: testutils
next235even(90) =	90
next235even(91) =	96
next235even(92) =	96
next235even(93) =	96
next235even(94) =	96
next235even(95) =	96
next235even(96) =	96
next235even(97) =	100
next235even(98) =	100
next235even(99) =	100
completed

Test number 2: check1d.sh
test 1d type-1:
one mode: rel err in F[370] is 6.72e-13
dirft1d: rel l2-err of result F is 1.89e-12
test 1d type-2:
one targ: rel err in c[500] is 2.32e-13
dirft1d: rel l2-err of result c is 1.73e-12
test 1d type-3:
one targ: rel err in F[500] is 9.35e-13
dirft1d: rel l2-err of result F is 2.46e-12
completed

Test number 3: check2d.sh
test 2d type-1:
one mode: rel err in F[37,2] is 4.26e-13
dirft2d: rel l2-err of result F is 1.52e-12
test 2d type-2:
one targ: rel err in c[500] is 2.41e-13
dirft2d: rel l2-err of result c is 1.79e-12
test 2d type-3:
one targ: rel err in F[500] is 1.14e-12
dirft2d: rel l2-err of result F is 2.63e-12
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
test 2dmany type-1:
one mode: rel err in F[37,2] of data[5] is 3.67e-13
err check vs non-many: sup ( ||F_many-F||_2 / ||F||_2  ) =  1.94e-16
test 2dmany type-2:
one targ: rel err in c[500] of data[5] is 1.1e-12
err check vs non-many: sup ( ||c_many-c||_2 / ||c||_2 ) =  0
completed

Test number 4: check3d.sh
test 3d type-1:
one mode: rel err in F[1,2,-7] is 5.62e-13
dirft3d: rel l2-err of result F is 1.14e-12
test 3d type-2:
one targ: rel err in c[500] is 4.28e-13
dirft3d: rel l2-err of result c is 1.24e-12
test 3d type-3:
one targ: rel err in F[500] is 5.23e-13
dirft3d: rel l2-err of result F is 2.96e-12
completed

Test number 5: dumbinputs
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
nf1=4e+12 exceeds MAX_NF of 1e+11
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
nf1*nf2=1.6e+14 exceeds MAX_NF of 1e+11
ndata should be at least 1 (ndata=0)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
ndata should be at least 1 (ndata=0)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
OMP: Info #270: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
setup_spreader: error, requested eps (0) is too small (<5.5e-17)
nf1*nf2*nf3=6.5e+15 exceeds MAX_NF of 1e+11
1D dumb cases ----------------
1d1 tol=0:	ier=1 (should complain)
1d1 N=0:	ier=0
1d1 M=0:	ier=0	nrm(F)=0 (should vanish)
1d2 tol=0:	ier=1 (should complain)
1d2 N=0:	ier=0	nrm(c)=0 (should vanish)
1d2 M=0:	ier=0
1d3 tol=0:	ier=1 (should complain)
1d3 nk=0:	ier=0
1d3 M=0:	ier=0	nrm(F)=0 (should vanish)
1d3 M=1:	ier=0	nrm(err)=0.0000
1d3 N=1:	ier=0	err=0.0000
1d3 M=N=1:	ier=0	err=0.0000
1d3 XK prod too big:	ier=2 (should complain)
2D dumb cases ----------------
2d1 tol=0:	ier=1 (should complain)
2d1 Ns=Nt=0:	ier=0
2d1 Ns=0,Nt>0:	ier=0
2d1 Ns>0,Ns=0:	ier=0
2d1 M=0:	ier=0	nrm(F)=0 (should vanish)
2d2 tol=0:	ier=1 (should complain)
2d2 Ns=Nt=0:	ier=0	nrm(c)=0 (should vanish)
2d2 Ns=0,Nt>0:	ier=0	nrm(c)=0 (should vanish)
2d2 Ns>0,Nt=0:	ier=0	nrm(c)=0 (should vanish)
2d2 M=0:	ier=0
2d3 tol=0:	ier=1 (should complain)
2d3 nk=0:	ier=0
2d3 M=0:	ier=0	nrm(F)=0 (should vanish)
2d3 M=1:	ier=0	nrm(F)=3.16
2d3 XK prod too big:	ier=2 (should complain)
2d1many ndata=0:	ier=9 (should complain)
2d1many tol=0:		ier=1 (should complain)
2d1many Ns=Nt=0:	ier=0
2d1many Ns=0,Nt>0:	ier=0
2d1many Ns>0,Ns=0:	ier=0
2d1many M=0:		ier=0	nrm(Fm)=0 (should vanish)
2d2many ndata=0:	ier=9 (should complain)
2d2many tol=0:		ier=1 (should complain)
2d2many Ns=Nt=0:	ier=0	nrm(cm)=0 (should vanish)
2d2many Ns=0,Nt>0:	ier=0	nrm(cm)=0 (should vanish)
2d2many Ns>0,Nt=0:	ier=0	nrm(cm)=0 (should vanish)
2d2many M=0:		ier=0
3D dumb cases ----------------
3d1 tol=0:	ier=1 (should complain)
3d1 Ns=Nt=Nu=0:	ier=0
3d1 Ns,Nt>0,Nu=0:	ier=0
3d1 Ns>0,Nt=0,Nu>0:	ier=0
3d1 Ns,Nt>0,Nu=0:	ier=0
3d1 M=0:	ier=0	nrm(F)=0 (should vanish)
3d2 tol=0:	ier=1 (should complain)
3d2 Ns=Nt=Nu=0:	ier=0	nrm(c)=0 (should vanish)
3d2 Ns=0,Nt,Nu>0:	ier=0	nrm(c)=0 (should vanish)
3d2 Ns>0,Nt=0,Nu>0:	ier=0	nrm(c)=0 (should vanish)
3d2 Ns,Nt>0,Nu=0:	ier=0	nrm(c)=0 (should vanish)
3d2 M=0:	ier=0
3d3 tol=0:	ier=1 (should complain)
3d3 nk=0:	ier=0
3d3 M=0:	ier=0	nrm(F)=0 (should vanish)
3d3 M=1:	ier=0	nrm(F)=3.16
3d3 XK prod too big:	ier=2 (should complain)
freed.
completed

0 crashes out of 5 tests done
Please check by eye that the numerical output has errors at expected level!
(or install numdiff and rerun; see ../INSTALL.md)
@ahbarnett
Copy link
Collaborator

ahbarnett commented Nov 18, 2019

Dear Ian,
Thanks for the detailed report. I am not a mac user, so will ask around.
Googling the missing symbol suggests problem with openmp libraries not found.
Eg, RGLab/Rtsne.multicore#2
says:

Since your compilation is ok I assume you have latest clang with openmp supported. The problem seems that openmp library can't be located at runtime, which means you may need to provide a path to shared OpenMP library,e.g. add this line to you ~/.Rprofile

export DYLD_LIBRARY_PATH=:$DYLD_LIBRARY_PATH

Here's another case of this symbol:
kharchenkolab/pagoda2#72
The solution is to (re)install openmp.

Potential other issues: you use conda. I didn't on our mac tests. Does it work in a python distro outside of conda?
Did you try the GCC route instead?
Good luck, Alex

@iancze
Copy link
Author

iancze commented Nov 19, 2019

Hi Alex,

Thank you for your quick response! I have tried a few more things but unfortunately I haven't met with success just yet. I will paste what I have tried so far here in case it is helpful. FINUFFT looks like a really nice package for some of the applications I have in mind and I hope I can get it running.

clang related tests:

I found a few more google results that also seem to point towards a problem with the openmp libraries being found (e.g., here and here). Though, these issues seem to suggest fixes that are already in the docs and haven’t worked for my case (i.e., brew install libomp and adding -fopenmp).

As you suggested, I set the environment variable

DYLD_LIBRARY_PATH=/usr/local/opt/libomp/lib/libomp.dylib
(I also tried DYLD_LIBRARY_PATH=/usr/local/opt/libomp/lib/)

Since this is the location that homebrew installed the libomp.

I did a make clean and redid make lib and make python. Unfortunately I still get the same error about the ___kmpc_barrier not being found when importing finufftpy_cpp.

This was the output from make lib

(tree-test) ➜  finufft git:(master) ✗ make lib
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/spreadinterp.cpp -o src/spreadinterp.o
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/utils.cpp -o src/utils.o
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft1d.o src/finufft1d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft2d.o src/finufft2d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/finufft3d.o src/finufft3d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft1d.o src/dirft1d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft2d.o src/dirft2d.cpp
g++ -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp   -c -o src/dirft3d.o src/dirft3d.cpp
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp src/common.cpp -o src/common.o
gcc -c -fPIC -O3 -I src -Xpreprocessor -fopenmp contrib/legendre_rule_fast.c -o contrib/legendre_rule_fast.o
g++ -c -fPIC -O3 -I src -Xpreprocessor -fopenmp -DNEED_EXTERN_C -Xpreprocessor -fopenmp fortran/finufft_f.cpp -o fortran/finufft_f.o
ar rcs lib-static/libfinufft.a src/spreadinterp.o src/utils.o src/finufft1d.o src/finufft2d.o src/finufft3d.o src/dirft1d.o src/dirft2d.o src/dirft3d.o src/common.o contrib/legendre_rule_fast.o fortran/finufft_f.o
g++ -shared -Xpreprocessor -fopenmp src/spreadinterp.o src/utils.o src/finufft1d.o src/finufft2d.o src/finufft3d.o src/dirft1d.o src/dirft2d.o src/dirft3d.o src/common.o contrib/legendre_rule_fast.o fortran/finufft_f.o -o lib/libfinufft.so -lfftw3 -lm -lomp -lfftw3_threads -lomp
echo "lib-static/libfinufft.a and lib/libfinufft.so built, multithreaded versions"
lib-static/libfinufft.a and lib/libfinufft.so built, multithreaded versions

I’m not expert enough with g++ makefiles to discern whether or not this linking is being passed on correctly from the environment to the build. Perhaps there is a set of make flags I need to edit in the make.inc? Any help on some of the different places to try changing would be much appreciated.

Separate to these tests using the macos system clang, for good measure I also tried using the conda clang. I installed conda install clang and then repeated everything. Unfortunately I still get the same error, most likely from openmp.

gcc related tests:

I installed gcc via homebrew. I didn’t quite follow the documentation’s request to change the gcc to gcc-8, since I’m not finding a lot of information on where to get the gcc-8 command for macos. I just have /usr/bin/gcc. So, I copied over the .macosx_gcc-8 makefile and changed the CXX and CC to gcc. When I run make lib, I get the error

 finufft git:(master) ✗ make lib
g++ -c -fPIC -O3 -funroll-loops -march=native -fcx-limited-range -I src  -I src -I/usr/local/include -fopenmp -DNEED_EXTERN_C -fopenmp src/spreadinterp.cpp -o src/spreadinterp.o
clang: error: unknown argument: '-fcx-limited-range'
clang: error: unsupported option '-fopenmp'

I haven’t yet tried installing this with the mac system python, as that is outside of my main development environment and the environments that I anticipate deploying to, which have many package dependencies best installed through conda.

Thanks again for your help!

@ahbarnett
Copy link
Collaborator

Hi Ian,
did you ever get this working? I notice that your "gcc related" test is still actually using clang, because that's what gcc aliases to on a mac. That's why I specified gcc-8 etc.
Best, Alex

@iancze
Copy link
Author

iancze commented Feb 22, 2020

Hi Alex,

Thanks for the reply. Unfortunately I haven't been able to get it working. I stopped using conda and switched to python 3.8 (installed from python.org) and a specific new venv for finufft. I tried first with clang and then again following the GCC instructions but I'm still getting errors (output linked here).

Thanks for your help,

Ian

@vineetbansal
Copy link
Contributor

vineetbansal commented Mar 11, 2020

Hello @iancze .. could you trying doing a pip install finufftpy and see how things look? I've just placed the mac os x wheels (version 1.1.2) on pypi. These have openmp libraries packaged with them, so you do not theoretically need to worry about homebrew or libomp/libgomp etc.

Edit: I've put up wheels for Python 3.6/3.7, but we'll add 3.8 to the mix if things are otherwise working correctly.

@iancze
Copy link
Author

iancze commented Mar 13, 2020

Dear @vineetbansal , thanks for preparing a new version! I just tried with my new python 3.8 with a venv and then saw your edit. Unless something is escaping me, it doesn't seem like there is a quick way for me to create a new 3.7 environment without also installing a new python executable? If a 3.8 wheel is coming shortly I will hold out to try that.

@vineetbansal
Copy link
Contributor

I've just uploaded the wheels for Python 3.8 for the mac..There's no quick way for me to test these out right now, but I'd be interested to know if it worked.

@iancze
Copy link
Author

iancze commented Mar 13, 2020

The 3.8 install worked great! This was in a new 3.8 venv with python downloaded from python.org and installed via pip install finufftpy. Thanks for your help!

@ahbarnett
Copy link
Collaborator

ahbarnett commented Oct 4, 2020

Hi Ian,
We have pypi wheels for finufft the new py interface for finufft 2.0.0 now. Please switch if you want. Ie, try pip install finufft. Best, Alex

@iancze
Copy link
Author

iancze commented Oct 15, 2020 via email

@smcantab
Copy link

smcantab commented Apr 22, 2023

I was having a similar issue finding OpenMP_C via cmake on a Mac and solved it by running:

cmake .. -D FINUFFT_BUILD_TESTS=ON -D CMAKE_C_COMPILER=$(which clang) -D CMAKE_CXX_COMPILER=$(which clang++) -D CMAKE_LINKER=$(which ld) -D CMAKE_AR=$(which ar)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants