linux编译MPI-IS/mesh

本文档详细介绍了如何在Linux系统中编译MPI-IS/mesh项目,包括依赖库的安装、配置步骤和编译过程,适用于科学计算和并行计算领域的研究者与开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(dla) root@bbbc6f9276e3:/# pip install mpi4py==3.0.3 Collecting mpi4py==3.0.3 Downloading mpi4py-3.0.3.tar.gz (1.4 MB) |################################| 1.4 MB 294 kB/s Preparing metadata (setup.py) ... done Building wheels for collected packages: mpi4py Building wheel for mpi4py (setup.py) ... error ERROR: Command errored out with exit status 1: command: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-1b28h61h cwd: /tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/ Complete output (206 lines): running bdist_wheel running build running build_src running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/run.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/bench.py -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/include creating build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py running build_clib MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for library 'lmpe' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'mpe' dylib library creating build/temp.linux-x86_64-3.6 creating build/temp.linux-x86_64-3.6/src creating build/temp.linux-x86_64-3.6/src/lib-pmpi /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/mpe.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "mpe" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-mpi' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-mpi.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-mpi.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-mpi" failed checking for library 'vt-hyb' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.ompi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-hyb' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-hyb.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-hyb.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-hyb" failed running build_ext MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for dlopen() availability ... checking for header 'dlfcn.h' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o success! removing: _configtest.c _configtest.o success! checking for library 'dl' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest checking for function 'dlopen' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest building 'mpi4py.dl' extension gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/root/miniconda3/envs/dla/include/python3.6m -c src/dynload.c -o build/temp.linux-x86_64-3.6/src/dynload.o gcc -pthread -shared -B /root/miniconda3/envs/dla/compiler_compat -L/root/miniconda3/envs/dla/lib -Wl,-rpath=/root/miniconda3/envs/dla/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/src/dynload.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o build/lib.linux-x86_64-3.6/mpi4py/dl.cpython-36m-x86_64-linux-gnu.so checking for MPI compile and link ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o error: Cannot compile MPI programs. Check your configuration!!! ---------------------------------------- ERROR: Failed building wheel for mpi4py Running setup.py clean for mpi4py Failed to build mpi4py Installing collected packages: mpi4py Running setup.py install for mpi4py ... error ERROR: Command errored out with exit status 1: command: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-tvroj_hd/install-record.txt --single-version-externally-managed --compile --install-headers /root/miniconda3/envs/dla/include/python3.6m/mpi4py cwd: /tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/ Complete output (206 lines): running install running build running build_src running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/run.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/bench.py -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/include creating build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py running build_clib MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for library 'lmpe' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'mpe' dylib library creating build/temp.linux-x86_64-3.6 creating build/temp.linux-x86_64-3.6/src creating build/temp.linux-x86_64-3.6/src/lib-pmpi /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/mpe.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "mpe" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-mpi' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-mpi.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-mpi.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-mpi" failed checking for library 'vt-hyb' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.ompi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-hyb' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-hyb.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-hyb.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-hyb" failed running build_ext MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for dlopen() availability ... checking for header 'dlfcn.h' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o success! removing: _configtest.c _configtest.o success! checking for library 'dl' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest checking for function 'dlopen' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest building 'mpi4py.dl' extension gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/root/miniconda3/envs/dla/include/python3.6m -c src/dynload.c -o build/temp.linux-x86_64-3.6/src/dynload.o gcc -pthread -shared -B /root/miniconda3/envs/dla/compiler_compat -L/root/miniconda3/envs/dla/lib -Wl,-rpath=/root/miniconda3/envs/dla/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/src/dynload.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o build/lib.linux-x86_64-3.6/mpi4py/dl.cpython-36m-x86_64-linux-gnu.so checking for MPI compile and link ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o error: Cannot compile MPI programs. Check your configuration!!! ---------------------------------------- ERROR: Command errored out with exit status 1: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-tvroj_hd/install-record.txt --single-version-externally-managed --compile --install-headers /root/miniconda3/envs/dla/include/python3.6m/mpi4py Check the logs for full command output.
最新发布
06-25
<think>我们正在解决用户在Linux环境下通过pip安装特定版本的mpi4py库时遇到的编译错误。错误信息是:"TheOpenMPIwrappercompilerwasunabletofindthespecifiedcompilerx86_64-conda-linux-gnu-ccinyourPATH"根据引用[1]中的信息,有用户通过安装特定版本的OpenMPI解决了类似问题。具体来说,他们使用conda安装了openmpi=4.1.2。另外,考虑到用户使用的是pip安装mpi4py,而mpi4py在安装时需要编译,它依赖于一个可用的MPI实现(如OpenMPI)和C编译器。错误信息指出找不到编译器`x86_64-conda-linux-gnu-cc`,这个编译器名称看起来是conda环境中的交叉编译工具链。因此,我们可以推测用户可能是在conda环境中尝试安装,但conda环境中的编译器可能没有正确设置。解决方案思路:1.确保系统中安装了必要的编译工具(如gcc)和OpenMPI库。2.或者,使用conda直接安装mpi4py,避免从源码编译(因为conda会预编译好二进制包)。3.如果坚持使用pip安装,需要确保环境变量PATH包含所需的编译器路径。具体步骤:###方法1:使用conda安装mpi4py(推荐)如果用户正在使用conda环境,可以直接使用conda安装mpi4py,这样conda会处理好所有依赖,包括OpenMPI编译器。```bashcondainstall-cconda-forgempi4py```这样安装的是预编译的二进制包,不需要本地编译。###方法2:通过conda安装OpenMPI编译器,再用pip安装mpi4py如果用户希望使用pip安装特定版本的mpi4py,那么需要先确保OpenMPI编译器已经安装并且可以在PATH中找到。根据引用[1],安装特定版本的OpenMPI:```bashcondainstall-cconda-forgeopenmpi=4.1.2```然后,安装编译器工具链。在conda环境中,可以安装gcc:```bashcondainstall-cconda-forgegxx_linux-64#安装C++编译器(g++),如果需要C编译器,安装gcccondainstall-cconda-forgegcc_linux-64#安装C编译器(gcc)```安装后,conda的编译器工具链通常会在`$CONDA_PREFIX/bin`目录下,其中包含`x86_64-conda-linux-gnu-cc`。请确保该目录在PATH中。然后,再使用pip安装mpi4py:```bashpipinstallmpi4py```###方法3:使用系统自带的OpenMPI编译器如果用户不想使用conda安装OpenMPI,可以尝试使用系统自带的OpenMPI编译器。但需要确保系统已经安装了OpenMPI和gcc(或clang)。例如,在Ubuntu上:```bashsudoapt-getinstallopenmpi-binlibopenmpi-dev```然后,确保系统的gcc可用:```bashsudoapt-getinstallbuild-essential```然后,使用pip安装mpi4py:```bashpipinstallmpi4py```###方法4:设置环境变量如果已经安装了conda的编译器,但PATH中没有,可以手动设置环境变量。例如,如果conda安装在`/home/user/anaconda3`,那么编译器路径可能是:```bashexportPATH=/home/user/anaconda3/bin:$PATH```然后重试pip安装。###总结根据错误信息,最直接的方法是按照引用[1]中的做法,安装特定版本的OpenMPI,并确保安装了conda的编译器工具链(gcc_linux-64)。然后,再尝试用pip安装mpi4py。如果用户希望快速解决问题,推荐使用方法1(conda直接安装mpi4py)。§§相关问题§§1.如何检查系统中OpenMPI的安装情况?2.如何在conda环境中管理多个版本的OpenMPI?3.安装mpi4py时,如何指定链接的MPI库?</think>### 解决 MPI4py 安装编译错误 根据错误信息 `The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH`,这是由 **Conda 环境中的编译器路径缺失**导致的。以下是系统化的解决方案: --- #### 解决方案步骤: 1. **激活 Conda 环境** ```bash conda activate <your_env_name> ``` 2. **安装缺失的编译器工具链** ```bash conda install -c conda-forge gcc_linux-64 gxx_linux-64 gfortran_linux-64 ``` 这会安装 Conda 专用的交叉编译工具链(包括 `x86_64-conda-linux-gnu-cc`)[^1]。 3. **验证编译器路径** ```bash which x86_64-conda-linux-gnu-cc ``` 正常应返回类似:`$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-cc` 4. **安装 OpenMPI 依赖** ```bash conda install -c conda-forge openmpi=4.1.2 # 版本需与系统兼容 ``` 5. **重试安装 mpi4py** ```bash pip install mpi4py --no-cache-dir # 强制重新编译 ``` --- #### 关键原理: - **路径冲突**:Conda 环境使用独立编译器路径 `$CONDA_PREFIX/bin`,但 OpenMPI 的 `mpicc` 包装器可能未正确指向该路径[^1][^4]。 - **工具链匹配**:必须安装 `gcc_linux-64` 等 Conda 工具链,生成与 Conda 环境 ABI 兼容的二进制文件[^2][^4]。 - **版本对齐**:OpenMPI 版本需与系统 GLIBC 兼容,推荐使用 Conda-forge 的预编译版本[^1][^3]。 --- #### 验证安装: ```python from mpi4py import MPI print(MPI.Get_library_version()) # 应输出 OpenMPI 版本信息 ``` --- #### 备选方案: 若仍失败,改用 Conda 直接安装预编译版本: ```bash conda install -c conda-forge mpi4py # 跳过编译过程 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值