Я пытаюсь собрать scipy
из источника в среде Анаконды.Однако во время сборки на месте ld
.
создается ошибка. Я создаю новую среду Anaconda в новой установке Miniconda.
conda create -n scipy_env
source activate scipy_env
Я устанавливаю gcc
-связанные компиляторы Anaconda, как описано в блоге разработчика Anaconda здесь :
(scipy_env) conda install gcc_linux-64 gxx_linux-64 gfortran_linux-64
Затем я устанавливаю cython
, atlas
, openblas
и numpy
в соответствии с требованиями Зависимости в Руководстве разработчика Scipy здесь и Построение из исходного кода на Linux на странице Scipy Reference Guide здесь :
(scipy_env) conda install cython atlas openblas
(scipy_env) conda install numpy
Затем я закрываю терминал и открываю новый и снова активирую среду scipy_env
.
Я клонирую scipy
репо в папку
(scipy_env) git clone https://github.com/scipy/scipy.git
(scipy_env) cd ./scipy
Наконец, я запускаю сборку на месте
(scipy_env) python setup.py build_ext --inplace
В один момент во время сборки терминал печатает следующее.Обратите внимание, что многоточие в середине следующего кодового блока указывает на много страниц формата A4 аналогичного вывода терминала, которые я для краткости удалил:
...
/home/aaron/miniconda3/envs/scipy_env/bin/x86_64-conda_cos6-linux-gnu-gfortran -Wall -g -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags build/temp.linux-x86_64-3.7/scipy/fftpack/_fftpackmodule.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/drfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zrfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfftnd.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/dct.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/dst.o build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.o -L/home/aaron/miniconda3/envs/scipy_env/bin/../x86_64-conda_cos6-linux-gnu/sysroot/lib/../lib -L/home/aaron/miniconda3/envs/scipy_env/bin/../x86_64-conda_cos6-linux-gnu/sysroot/lib/../lib -Lbuild/temp.linux-x86_64-3.7 -ldfftpack -lfftpack -lgfortran -o scipy/fftpack/_fftpack.cpython-37m-x86_64-linux-gnu.so -Wl,--version-script=build/temp.linux-x86_64-3.7/link-version-scipy.fftpack._fftpack.map
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: /home/aaron/miniconda3/envs/scipy_env/bin/../x86_64-conda_cos6-linux-gnu/sysroot/usr/lib/../lib/Scrt1.o: in function `_start':
/home/rdonnelly/mc/conda-bld/compilers_linux-64_1534865402226/work/.build/src/glibc-2.12.2/csu/../sysdeps/x86_64/elf/start.S:99: undefined reference to `main'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: build/temp.linux-x86_64-3.7/scipy/fftpack/_fftpackmodule.o: in function `f2py_rout__fftpack_destroy_dst1_cache':
_fftpackmodule.c:(.text+0x31): undefined reference to `PyArg_ParseTupleAndKeywords'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: _fftpackmodule.c:(.text+0x3d): undefined reference to `PyErr_Occurred'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: _fftpackmodule.c:(.text+0x7b): undefined reference to `Py_BuildValue'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: build/temp.linux-x86_64-3.7/scipy/fftpack/_fftpackmodule.o: in function `f2py_rout__fftpack_destroy_dst2_cache':
_fftpackmodule.c:(.text+0xd1): undefined reference to `PyArg_ParseTupleAndKeywords'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: _fftpackmodule.c:(.text+0xdd): undefined reference to `PyErr_Occurred'
...
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: fortranobject.c:(.text+0x21f8): undefined reference to `PyOS_snprintf'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.o: in function `F2PyCapsule_AsVoidPtr':
fortranobject.c:(.text+0x2238): undefined reference to `PyCapsule_GetPointer'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: fortranobject.c:(.text+0x2257): undefined reference to `PyErr_Clear'
/home/aaron/miniconda3/envs/scipy_env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.o: in function `F2PyCapsule_Check':
fortranobject.c:(.text+0x2273): undefined reference to `PyCapsule_Type'
collect2: error: ld returned 1 exit status
error: Command "/home/aaron/miniconda3/envs/scipy_env/bin/x86_64-conda_cos6-linux-gnu-gfortran -Wall -g -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags build/temp.linux-x86_64-3.7/scipy/fftpack/_fftpackmodule.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/drfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zrfft.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/zfftnd.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/dct.o build/temp.linux-x86_64-3.7/scipy/fftpack/src/dst.o build/temp.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.o -L/home/aaron/miniconda3/envs/scipy_env/bin/../x86_64-conda_cos6-linux-gnu/sysroot/lib/../lib -L/home/aaron/miniconda3/envs/scipy_env/bin/../x86_64-conda_cos6-linux-gnu/sysroot/lib/../lib -Lbuild/temp.linux-x86_64-3.7 -ldfftpack -lfftpack -lgfortran -o scipy/fftpack/_fftpack.cpython-37m-x86_64-linux-gnu.so -Wl,--version-script=build/temp.linux-x86_64-3.7/link-version-scipy.fftpack._fftpack.map" failed with exit status 1
У меня нет никаких сведений о компиляции C и Fortran, поэтомуЯ понятия не имею, что вызывает ошибку в приведенном выше блоке, или, что более важно, что нужно сделать, чтобы ее исправить.
У кого-нибудь есть какие-либо советы относительно того, как решить эту проблему?