Python
파이썬 충돌해결 module conflict
크레이지제이
2019. 12. 1. 14:10
반응형
Python module conflict error
파이썬으로 외부의 여러 패키지들을 깔고 테스트하다 보면 가끔씩 충돌이 발생하여 이전에는 잘 되던 것들이 꼬이게 된다.
막상 경험해 보면 복구하는 것이 쉽지 않고 점점 더 꼬이는 악순환이 발생하여 나중에는 파이썬을 다시 설치하게 된다.
어떻게 복구하는 방법이 없을까?
먼저 가끔씩 현상황을 기록해 두자.
pip freeze > requirements.txt
- 위와 같이 freeze 옵션을 사용하면 현재 설치된 모든 모듈의 버전들이 기록된다. 보통은 requirements.txt 로 많이 기록된 것을 볼 수 있다.
- 나중에 저 목록을 한 번에 설치가 가능하다. install -r 옵션을 사용한다.
마지막에 설치/변경된 모듈들을 삭제.
- 마지막에 설치/변경된 모듈들을 하나씩 삭제해 올라간다.
- 그런데 마지막순으로 설치된 모듈들이 무엇인지 기억이 나지 않는다.
현재 python 환경(env)의 설치 경로들을 확인.
conda env list
python --version
코드로 라이브러리 위치 확인
import os, inspect
inspect.getfile(os)
'opt/anacoda3/lib/python3.7/os.py'
import web3
inspect.getfile(web3)
'/home/crazyj/myvenv/lib/python3.7/site-packages/web3/__init__.py'
- 위와 같이 패키지 설치 경로를 확인한 다음 디렉터리로 가서 날짜를 확인한다.
ls -ltr : 마지막에 나온것들이 최근 설치/업데이트된 패키지들. (last modified time 기준으로 역순소팅)
위 마지막 패키지들을 pip uninstall로 하나씩 지워나가면서 테스트 한다.
모든 패키지 삭제하기
이것도 저것도 안된다면, 백업받은 패키지 목록대로 돌리기 위해 전부 삭제하고 다시 설치하자.
pip freeze | xargs pip uninstall -y
또는
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
패키지 목록 한번에 설치하기
pip install -r requirements.txt
Author: crazyj7@gmail.com