繁体   English   中英

如何在没有 sudo 的情况下安装 mpi4py?

[英]How to install mpi4py without sudo?

当我尝试使用 Ubuntu 22 上的 pip pip install没有 sudo 的 mpi4py 时,我收到以下错误(使用 sudo 可以正常工作):

  ERROR: Command errored out with exit status 1:
   command: /home/vedant/miniconda3/bin/python /home/vedant/miniconda3/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp25az93fg
       cwd: /tmp/pip-install-khu2q4rx/mpi4py_194f67e86692449fbf667e77b7a580c2
  Complete output (404 lines):
  running bdist_wheel
  running build
  running build_src
  running build_py
  creating build
  creating build/lib.linux-x86_64-cpython-39
  creating build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/bench.py -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/run.py -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-cpython-39/mpi4py
  creating build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/_core.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  creating build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/util/dtlib.py -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/util/__init__.py -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/util/pkl5.py -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/py.typed -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/__init__.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/__main__.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/run.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/dl.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/MPI.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/bench.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-cpython-39/mpi4py
  copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-cpython-39/mpi4py
  creating build/lib.linux-x86_64-cpython-39/mpi4py/include
  creating build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-cpython-39/mpi4py/include/mpi4py
  copying src/mpi4py/futures/pool.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/server.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/__init__.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/__main__.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/aplus.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/_lib.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/futures/_core.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/futures
  copying src/mpi4py/util/__init__.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/util/dtlib.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  copying src/mpi4py/util/pkl5.pyi -> build/lib.linux-x86_64-cpython-39/mpi4py/util
  running build_clib
  MPI configuration: [mpi] from 'mpi.cfg'
  MPI C compiler:    /usr/bin/mpicc
  MPI C++ compiler:  /usr/bin/mpicxx
  MPI F compiler:    /usr/bin/mpifort
  MPI F90 compiler:  /usr/bin/mpif90
  MPI F77 compiler:  /usr/bin/mpif77
  checking for library 'lmpe' ...
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c _configtest.c -o _configtest.o
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat _configtest.o -llmpe -o _configtest
  /home/vedant/miniconda3/compiler_compat/ld: cannot find -llmpe
  collect2: error: ld returned 1 exit status
  failure.
  removing: _configtest.c _configtest.o
  building 'mpe' dylib library
  creating build/temp.linux-x86_64-cpython-39
  creating build/temp.linux-x86_64-cpython-39/src
  creating build/temp.linux-x86_64-cpython-39/src/lib-pmpi
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-cpython-39/src/lib-pmpi/mpe.o
  creating build/lib.linux-x86_64-cpython-39/mpi4py/lib-pmpi
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -shared -Wl,-rpath,/home/vedant/miniconda3/lib -Wl,-rpath-link,/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -Wl,-rpath,/home/vedant/miniconda3/lib -Wl,-rpath-link,/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -Wl,--no-as-needed build/temp.linux-x86_64-cpython-39/src/lib-pmpi/mpe.o -o build/lib.linux-x86_64-cpython-39/mpi4py/lib-pmpi/libmpe.so
  checking for library 'vt-mpi' ...
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c _configtest.c -o _configtest.o
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat _configtest.o -lvt-mpi -o _configtest
  /home/vedant/miniconda3/compiler_compat/ld: cannot find -lvt-mpi
  collect2: error: ld returned 1 exit status
  failure.
  removing: _configtest.c _configtest.o
  checking for library 'vt.mpi' ...
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c _configtest.c -o _configtest.o
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat _configtest.o -lvt.mpi -o _configtest
  /home/vedant/miniconda3/compiler_compat/ld: cannot find -lvt.mpi
  collect2: error: ld returned 1 exit status
  failure.
  removing: _configtest.c _configtest.o
  building 'vt' dylib library
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-cpython-39/src/lib-pmpi/vt.o
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -shared -Wl,-rpath,/home/vedant/miniconda3/lib -Wl,-rpath-link,/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -Wl,-rpath,/home/vedant/miniconda3/lib -Wl,-rpath-link,/home/vedant/miniconda3/lib -L/home/vedant/miniconda3/lib -Wl,--no-as-needed build/temp.linux-x86_64-cpython-39/src/lib-pmpi/vt.o -o build/lib.linux-x86_64-cpython-39/mpi4py/lib-pmpi/libvt.so
  checking for library 'vt-mpi' ...
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/vedant/miniconda3/include -I/home/vedant/miniconda3/include -fPIC -O2 -isystem /home/vedant/miniconda3/include -fPIC -c _configtest.c -o _configtest.o
  /usr/bin/mpicc -pthread -B /home/vedant/miniconda3/compiler_compat _configtest.o -lvt-mpi -o _configtest
  /home/vedant/miniconda3/compiler_compat/ld: cannot find -lvt-mpi
  collect2: error: ld returned 1 exit status

我看过这篇文章: 安装 mpi4py并运行sudo apt install mpi ,这很有效。 因此, which mpiexec打印/usr/bin/mpiexec

我读过这篇文章: Cannot install mpi4py on CentOS 7 ,并做了以下事情:

sudo apt install python3-mpi4py

答案是使用 conda 而不是 pip:

conda install -c conda-forge mpi
conda install -c conda-forge mpi4py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM