2021-02-09

importlib.metadata.PackageNotFoundError: pdb4amber 에러 조치

  

 

1       원인 및 상황

Amber는 분자동역학 시뮬레이션에서 자주 사용되는 소프트웨어 패키지이다. 그런데 요번에 Amber 20 버전으로 업데이트했는데 발생한 버그가 있다. 그것은 바로 pdb4amber의 임포트 에러.

원인을 정확히 이해하진 못했지만, 아마도 소스코드의 문제로 인해 컴파일할 때 pdb4amber의 경로를 제대로 잡아주지 못한 것 같다.

 

2       해결 방법

해당 이슈로 고생하신 분들이 남긴 깃허브 이슈트래커를 참조하였다. 이 글에서 제시된 해결책은 다음과 같다:

l  pdb4amberegg-info 및 패키지 위치 조정하기
mv /opt/amber/lib/python3.8/site-packages/pdb4amber-1.7.dev0-py3.8.egg/EGG-INFO /opt/amber/lib/python3.8/site-packages/pdb4amber-1.7.dev0-py3.8.egg-info
mv /opt/amber/lib/python3.8/site-packages/pdb4amber-1.7.dev0-py3.8.egg/pdb4amber /opt/amber/lib/python3.8/site-packages/pdb4amber

l  setuptools 버전을 다운그레이드하기
그런데 이 방법은 run_cmake로 설치했다면 실행하지 않아도 된다. Amber 메일링 리스트에 의하면 run_cmake로 설치할 경우엔 업데이트가 자동으로 진행되어 지금 이 이슈가 발생하지 않을 것이기 때문이다. 다만, 사용자가 자체적인 파이썬을 가지고 있는 경우엔 여전히 문제가 발생할 수 있다. 필자의 경우도 $AMBERHOME/update_amber 를 실행시켰을 때 /usr/bin/env: ‘python’: No such file or directory 에러를 뱉어냈다.
amber.python -m pip install setuptools=47.3.1

l  $PYTHONPATH 변수에 pdb4amber 패키지만 따로 추가하기 (해결)
Amber
를 설치하고 나서 source amber.sh 등을 실행해줄텐데, 해당 파일을 source 하기 전과 후에 각각 echo $PYTHONPATH 를 비교해보면 쉽게 알 수 있다(아래의 사진을 참고하면 좋다).
export PYTHONPATH=$PYTHONPATH:$AMBERHOME/lib/python3.8/site-packages/pdb4amber-1.7.dev0-py3.8.egg/