일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- 백신후원
- Pull Request
- 사회조사분석사2급
- cs231n
- 코크리
- docker
- 티스토리챌린지
- logistic regression
- Decision Boundary
- AIFFEL
- airflow
- 도커
- Jupyter notebook
- HookNet
- 프로그래머스
- docker attach
- GIT
- aiffel exploration
- WSSS
- 오블완
- CellPin
- ssh
- IVI
- cocre
- 기초확률론
- 히비스서커스
- vscode
- docker exec
- numpy
- Today
- Total
히비스서커스의 블로그
[Ubuntu] 각종 에러 모음 (feat. openslide, apt-get, segmentation-model) 본문
[Ubuntu] 각종 에러 모음 (feat. openslide, apt-get, segmentation-model)
HibisCircus 2021. 7. 28. 14:52
ubuntu 환경에서 Docker로 가상환경을 만들고 Jupyter notebook으로 작업을 하던 중 openslide 라이브러리가 설치가 안되었다고 하여 설치 후 다음과 같은 에러 메시지를 맞이하였다.
OSError: libopenslide.so.0: cannot open shared object file: No such file or directory
stackoverflow를 찾아보니 다음과 같은 해결방안이 있었다.
https://github.com/openslide/openslide-python/issues/35
다음과 같이 3개를 다시 설치해주면 되었다.
$ sudo apt-get install openslide-tools
$ pip install openslide-python
apt-get install 명령어로 다운 받아야 하는 상황이 생겼다. 이를 위해 여러 가지 문제를 봉착하면서 알게 된 내용들을 쭈욱 정리해본다.
1. 주피터 노트북이 켜져있는 도커의 컨테이너에 접속하기
일단 주피터 노트북에서 명령어를 입력하기 보다는 터미널로 들어가는 것이 좀 더 수월하기에 도커의 컨테이너로 접속한다. 그러기 위해 주피터 노트북이 커져있는 컨테이너의 name을 확인해보자.
$ sudo docker ps -a
나타나는 컨테이너 목록 중 주피터 노트북이 커져있는 컨테이너의 이름이나 ID를 확인한다. (jupyter notebook 관련 명령어나 port 관련이 나오는 것이 현재 주피터 노트북이 커져있는 컨테이너일 확률이 높다.)
$ sudo docker attach (컨테이너 name or ID)
이제 컨테이너로 접속하였으니 위 3개의 명령어를 입력하여 설치를 해주면 정상적으로 작동이 된다.
간혹 아래와 같은 에러가 날 수 있다.
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc-bin_2.15-0ubuntu10.6_i386.deb 404 Not Found [IP: 91.189.91.14 80]
이는 apt-get이 최신화가 되지 않은 에러로 apt-get을 update해주면 잘 해결된다.
apt-get update
위의 명령어들을 입력하면 아래의 차이를 찾아보았다.
3. apt-get install vs pip install
어느 정도 감은 잡고 있었지만 이번 기회에 확실하게 잡고 간 내용이다.
pip install로 설치할 시 파이썬 패키지들의 저장소인 PyPI(Python Package index)에서 패키지를 다운받는 것이고,
apt-get으로 설치할 시 우분투 저장소로부터 가져오는 것이다.
이 두 곳의 호스팅이 다른데 PyPI는 파이썬 언어를 만든 Python Software Foundation에서 호스팅한 것이고,
apt-get은 우분투 저장소는 우분투를 만든 Canonical에서 호스팅한 것이다.
자세한 내용은 아래의 블로그를 참고하면 좋다.
4. segmentation-model 에러
openslide-python 설치 후 segmentation-model 라이브러리를 설치하다가 또 다른 에러를 맞이하였다.
AttributeError: module 'keras.utils' has no attribute 'generic_utils'
위 문제 해결방법은 stackoverflow에서 답을 찾아 해결하였다.
https://github.com/qubvel/segmentation_models/issues/374
에러가 발생한 path로 입력하여 그곳의 내용을 바꿔주면 되었다. 보통 설치가 된 path는 ~(환경에 따라 다름)/lib/python3.6/site-packages/efficientnet 으로 이동한다.
그 후 vi를 통해 __init__.py를 열고
$ vi __init__.py
아래의 내용을
# 71번 째 라인 쯤
keras.utils.generic_utils.get_custom_objects().update(custom_objects)
아래와 같이 수정해준다.
# 71번 째 라인 쯤
keras.utils.get_custom_objects().update(custom_objects)
그 후 실행하면 잘 된다!
위의 과정 모두 설치와 수정을 완료하였다면 라이브러리를 실행하였던 주피터 노트북 커널을 한 번 shutdown 시키고 실행해주는 것이 좋다.
-히비스서커스-