WSL2, Ubuntu-18.04 환경에서 Yolov4 Darknet에 대해 테스트를 진행 중 다음과 같은 에러가 발생했다.
ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi' E: Sub-process returned an error code
사용하고 있는 GPU가 30 시리즈인 반면, 작동해야하는 코드들은 CUDA 10.1 버전에서 돌아가는 것들이 꽤나 많았다.
이러한 이유들로 인해 두 가지 이상의 쿠다 버전을 동시에 설치해 상황에 따라 스위칭하는 방식으로 작동해야 했으며(RTX 30시리즈는 CUDA 11 버전 이상에 대해서 작동한다. 구글링 결과 runfile을 통해 로컬 환경에서 CUDA 10버전 대를 설치해 사용할 수 있다고 해 따라해보았으나 실패), 이를 위해 Ubuntu-18.04 환경에서 python 3.7 버전을 설치해 기본값으로 지정해 사용하는 와중 위와 같은 에러가 발생했다.
정확히는 Ubuntu-18.04 환경에서 python3.7 설치 이후 python3의 기본값으로 지정한 뒤, sudo apt update를 실행했을 때 발생한 오류였다.
이를 확인해보니 apt 명령어로 설정된 것이 기존의 3.6 버전에 대해서만 있기 때문에 발생한 오류이며, 이를 해결하기 위한 방법은 크게 두 가지였다.
1. python3.6 버전으로 돌아간다.
2. apt를 3.7 버전으로 재설치
구글링 결과로는 대부분 첫 번째 방법을 제시하나, 당연하게도 이는 내 목적에 위배된다.
당연히 두 번째 선택지를 선택할 수밖에 없으나, 만약 그렇지 않은 사람, 상황을 위해 첫 번째를 위한 코드는 다음과 같다.
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{your-version-number}-x86_64-linux-gnu.so apt_pkg.so
두 번째, 내가 선택한 방법은 apt를 삭제 후 재설치하는 것.
sudo apt-get remove python3-apt
sudo apt-get install python3-apt
이후 wsl를 나가서 완전히 종료 후, 다시 들어오면 sudo apt update가 정상적으로 작동하는 것을 확인할 수 있다.
'DATA SCIENCE > Study' 카테고리의 다른 글
MLOps란 무엇인가? (0) | 2022.02.22 |
---|---|
WSL2 환경에서 WEBCAM 사용 (0) | 2022.01.06 |
linux 환경 하, 여러 deb package 설치 방법 (0) | 2022.01.05 |
Node.js 특정 버전 설치 & Node-RED 설치(WSL2, Ubuntu-20.04) (0) | 2021.12.30 |
error executing command, exiting (0) | 2021.12.30 |