본문 바로가기

환경설정 log

mpi4py 오류 해결 log

PocketFlow 에 필요한 mpi4py >= 3.0 을 설치하려다 오류가 발생하여 해결하는 과정을  log 로 남기려 한다.

anaconda environment에서 발생

 

ERROR: Command errored out with exit status 1: 
   command: /home/**/.conda/envs/pocketflow/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-u6ash82_/mpi4py/setup.py'"'"'; __file__='"'"'/tmp/pip-install-u6ash82_/mpi4py/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-jdpiz1u8 --python-tag cp36 
       cwd: /tmp/pip-install-u6ash82_/mpi4py/ 
  Complete output (124 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/bench.py -> 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 
  creating 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/pool.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/futures/_lib.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/aplus.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.h -> 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.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' 
  checking for library 'lmpe' ... 
  gcc -pthread -B /home/**/.conda/envs/pocketflow/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o 
  gcc -pthread -B /home/**/.conda/envs/pocketflow/compiler_compat -Wl,--sysroot=/ _configtest.o -llmpe -o _configtest 
  /home/**/.conda/envs/pocketflow/compiler_compat/ld: cannot find -llmpe 
  collect2: error: ld returned 1 exit status 
  failure. 

lmpe library 를 찾지 못하여 생기는 문제로, sudo 권한을 주거나

--user option을 줘서 .local 에 설치하게 하면 해결된다.

 

혹은 $sudo apt install mpich  입력 후

pip install ~ command를 치면 해결된다.