[SciPy-Dev] Compiling scipy on macOS with conda environment

Andrew Nelson andyfaff at gmail.com
Tue Aug 14 19:53:08 EDT 2018


Hi all,
I've been having issues compiling scipy/master on macOS in a Python 3.6
conda based environment (numpy 1.15).
I'm getting a whole load of undefined symbols, and the tail end of the
build log is below.

I've managed to get around the problem by setting LDFLAGS (based on
https://groups.google.com/a/continuum.io/forum/#!topic/conda/cwqTbwQAyW0):

export LDFLAGS="$LDFLAGS -undefined dynamic_lookup -bundle"

I have no idea why this works. Not sure why the problem comes about, but I
thought people might be interested in knowing what the solution could be.


/usr/local/bin/gfortran -Wall -g -Wl,-pie -Wl,-headerpad_max_install_names
-Wl,-dead_strip_dylibs
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/_fftpackmodule.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/drfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zrfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zfftnd.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/src/dct.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/src/dst.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/fortranobject.o
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0/../../..
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0/../../..
-Lbuild/temp.macosx-10.9-x86_64-3.6 -ldfftpack -lfftpack -lgfortran -o
build/lib.macosx-10.9-x86_64-3.6/scipy/fftpack/_
fftpack.cpython-36m-darwin.so

Undefined symbols for architecture x86_64:

  "_PyArg_ParseTupleAndKeywords", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_drfft_cache in _fftpackmodule.o

      ...

  "_PyBytes_FromString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyCapsule_GetPointer", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyCapsule_AsVoidPtr in fortranobject.o

  "_PyCapsule_New", referenced from:

      _fortran_getattr in fortranobject.o

      _F2PyCapsule_FromVoidPtr in fortranobject.o

  "_PyCapsule_Type", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyCapsule_Check in fortranobject.o

  "_PyComplex_Type", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyDict_DelItemString", referenced from:

      _fortran_setattr in fortranobject.o

  "_PyDict_GetItemString", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyDict_New", referenced from:

      _PyFortranObject_New in fortranobject.o

      _PyFortranObject_NewAsAttr in fortranobject.o

      _fortran_setattr in fortranobject.o

  "_PyDict_SetItemString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

      _PyFortranObject_New in fortranobject.o

      _fortran_getattr in fortranobject.o

      _fortran_setattr in fortranobject.o

  "_PyErr_Clear", referenced from:

      _int_from_pyobj in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

      _fortran_getattr in fortranobject.o

      _fortran_repr in fortranobject.o

      _F2PyCapsule_FromVoidPtr in fortranobject.o

      _F2PyCapsule_AsVoidPtr in fortranobject.o

  "_PyErr_Format", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_call in fortranobject.o

      _check_and_fix_dimensions in fortranobject.o

  "_PyErr_NewException", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyErr_NoMemory", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyErr_Occurred", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      ...

  "_PyErr_Print", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

  "_PyErr_SetString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_cfft in _fftpackmodule.o

      _f2py_rout__fftpack_rfft in _fftpackmodule.o

      ...

  "_PyExc_AttributeError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_setattr in fortranobject.o

  "_PyExc_ImportError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyExc_RuntimeError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_call in fortranobject.o

  "_PyExc_TypeError", referenced from:

      _fortran_call in fortranobject.o

      _array_from_pyobj in fortranobject.o

  "_PyExc_ValueError", referenced from:

      _array_from_pyobj in fortranobject.o

      _check_and_fix_dimensions in fortranobject.o

  "_PyImport_ImportModule", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyLong_AsLong", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyMem_Free", referenced from:

      _fortran_dealloc in fortranobject.o

      _fortran_getattr in fortranobject.o

  "_PyMem_Malloc", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyModule_Create2", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyModule_GetDict", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyNumber_Long", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyOS_snprintf", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyObject_GenericGetAttr", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyObject_GetAttrString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _int_from_pyobj in _fftpackmodule.o

      _fortran_repr in fortranobject.o

  "_PySequence_Check", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PySequence_GetItem", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyType_IsSubtype", referenced from:

      _int_from_pyobj in _fftpackmodule.o

      _array_from_pyobj in fortranobject.o

  "_PyType_Type", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyUnicode_Concat", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyUnicode_FromFormat", referenced from:

      _fortran_repr in fortranobject.o

  "_PyUnicode_FromString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_getattr in fortranobject.o

      _fortran_repr in fortranobject.o

  "_PyUnicode_FromStringAndSize", referenced from:

      _fortran_getattr in fortranobject.o

  "_Py_BuildValue", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_drfft_cache in _fftpackmodule.o

      ...

  "__PyObject_New", referenced from:

      _PyFortranObject_New in fortranobject.o

      _PyFortranObject_NewAsAttr in fortranobject.o

  "__Py_NoneStruct", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_cfft in _fftpackmodule.o

      _f2py_rout__fftpack_rfft in _fftpackmodule.o

      _f2py_rout__fftpack_crfft in _fftpackmodule.o

      ...

  "_main", referenced from:

     implicit entry/start for main executable

ld: symbol(s) not found for architecture x86_64

collect2: error: ld returned 1 exit status

Undefined symbols for architecture x86_64:

  "_PyArg_ParseTupleAndKeywords", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_drfft_cache in _fftpackmodule.o

      ...

  "_PyBytes_FromString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyCapsule_GetPointer", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyCapsule_AsVoidPtr in fortranobject.o

  "_PyCapsule_New", referenced from:

      _fortran_getattr in fortranobject.o

      _F2PyCapsule_FromVoidPtr in fortranobject.o

  "_PyCapsule_Type", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyCapsule_Check in fortranobject.o

  "_PyComplex_Type", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyDict_DelItemString", referenced from:

      _fortran_setattr in fortranobject.o

  "_PyDict_GetItemString", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyDict_New", referenced from:

      _PyFortranObject_New in fortranobject.o

      _PyFortranObject_NewAsAttr in fortranobject.o

      _fortran_setattr in fortranobject.o

  "_PyDict_SetItemString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

      _PyFortranObject_New in fortranobject.o

      _fortran_getattr in fortranobject.o

      _fortran_setattr in fortranobject.o

  "_PyErr_Clear", referenced from:

      _int_from_pyobj in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

      _fortran_getattr in fortranobject.o

      _fortran_repr in fortranobject.o

      _F2PyCapsule_FromVoidPtr in fortranobject.o

      _F2PyCapsule_AsVoidPtr in fortranobject.o

  "_PyErr_Format", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_call in fortranobject.o

      _check_and_fix_dimensions in fortranobject.o

  "_PyErr_NewException", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyErr_NoMemory", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyErr_Occurred", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      ...

  "_PyErr_Print", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _F2PyDict_SetItemString in fortranobject.o

  "_PyErr_SetString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_cfft in _fftpackmodule.o

      _f2py_rout__fftpack_rfft in _fftpackmodule.o

      ...

  "_PyExc_AttributeError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_setattr in fortranobject.o

  "_PyExc_ImportError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyExc_RuntimeError", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_call in fortranobject.o

  "_PyExc_TypeError", referenced from:

      _fortran_call in fortranobject.o

      _array_from_pyobj in fortranobject.o

  "_PyExc_ValueError", referenced from:

      _array_from_pyobj in fortranobject.o

      _check_and_fix_dimensions in fortranobject.o

  "_PyImport_ImportModule", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyLong_AsLong", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyMem_Free", referenced from:

      _fortran_dealloc in fortranobject.o

      _fortran_getattr in fortranobject.o

  "_PyMem_Malloc", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyModule_Create2", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyModule_GetDict", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyNumber_Long", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyOS_snprintf", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyObject_GenericGetAttr", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyObject_GetAttrString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _int_from_pyobj in _fftpackmodule.o

      _fortran_repr in fortranobject.o

  "_PySequence_Check", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PySequence_GetItem", referenced from:

      _int_from_pyobj in _fftpackmodule.o

  "_PyType_IsSubtype", referenced from:

      _int_from_pyobj in _fftpackmodule.o

      _array_from_pyobj in fortranobject.o

  "_PyType_Type", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

  "_PyUnicode_Concat", referenced from:

      _fortran_getattr in fortranobject.o

  "_PyUnicode_FromFormat", referenced from:

      _fortran_repr in fortranobject.o

  "_PyUnicode_FromString", referenced from:

      _PyInit__fftpack in _fftpackmodule.o

      _fortran_getattr in fortranobject.o

      _fortran_repr in fortranobject.o

  "_PyUnicode_FromStringAndSize", referenced from:

      _fortran_getattr in fortranobject.o

  "_Py_BuildValue", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfft_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_zfftnd_cache in _fftpackmodule.o

      _f2py_rout__fftpack_destroy_drfft_cache in _fftpackmodule.o

      ...

  "__PyObject_New", referenced from:

      _PyFortranObject_New in fortranobject.o

      _PyFortranObject_NewAsAttr in fortranobject.o

  "__Py_NoneStruct", referenced from:

      _f2py_rout__fftpack_zfft in _fftpackmodule.o

      _f2py_rout__fftpack_drfft in _fftpackmodule.o

      _f2py_rout__fftpack_zrfft in _fftpackmodule.o

      _f2py_rout__fftpack_zfftnd in _fftpackmodule.o

      _f2py_rout__fftpack_cfft in _fftpackmodule.o

      _f2py_rout__fftpack_rfft in _fftpackmodule.o

      _f2py_rout__fftpack_crfft in _fftpackmodule.o

      ...

  "_main", referenced from:

     implicit entry/start for main executable

ld: symbol(s) not found for architecture x86_64

collect2: error: ld returned 1 exit status

error: Command "/usr/local/bin/gfortran -Wall -g -Wl,-pie
-Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/_fftpackmodule.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/drfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zrfft.o
build/temp.macosx-10.9-x86_64-3.6/scipy/fftpack/src/zfftnd.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/src/dct.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/src/dst.o
build/temp.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/build/src.macosx-10.9-x86_64-3.6/scipy/fftpack/fortranobject.o
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0/../../..
-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0/../../..
-Lbuild/temp.macosx-10.9-x86_64-3.6 -ldfftpack -lfftpack -lgfortran -o
build/lib.macosx-10.9-x86_64-3.6/scipy/fftpack/_
fftpack.cpython-36m-darwin.so" failed with exit status 1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20180815/bfff88f2/attachment-0001.html>


More information about the SciPy-Dev mailing list