# case1
# 설치는 했지만 pip(python2) 를 찾을 수 없는 경우가 있다.
# python2 를 재설치
brew reinstall python@2
# 안되면 강제 삭제 후 재설치
brew uninstall --ignore-dependencies python@2
brew install python@2
# 참고로 centos 에서
sudo alternatives --set python /usr/bin/python2
# 또는
sudo alternatives --set python /usr/bin/python3
# 로 기본 파이썬 실행 /usr/bin/python 을 설정할 수 있다.
# case2
# pip install requests 모듈을 설치했는데도
# 파이썬 실행시 다음과 같이 모듈이 없다는 에러가 발생한다.
ImportError: No module named requests
# 해당 모듈은 이미 설치가 된 상태이다.(맥 기준)
pip install requests
Requirement already satisfied: requests in /Library/Python/2.7/site-packages
# 현재 파이썬에서 사용되는 라이브러리 경로를 확인해보면
# /Library/Python/2.7/site-packages 가 포함되어 있지 않다.
python
>>> import sys
>>> print sys.path
# 파이썬 모듈은 sys.path 에 설정된 경로에서 찾는다.
# PYTHONPATH 환경변수로 다음과 같이 추가하면 sys.path 에 추가된다.
# mac 의 경우
export PYTHONPATH=/Library/Python/2.7/site-packages
# linux 의 경우
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
# sys.path 를 다시 확인해보면 경로가 추가되었고,이제 모듈 에러가 발생하지 않는다.
# 하지만 3.x 버전에선 다시 실행되지 않는 문제가 있다.
# python2, 3 을 모두 사용하려면 pyenv(별도 포스트 참고)로 파이썬을 버전별로 사용하자.
# pip 로 설치시 sudo 를 주면 root 권한으로 설치된다.
# 나중에 설치 삭제때 문제가될수 있어 권한을 사용자로 변경한다.
cd /usr/local/lib/python2.7/site-packages
sudo chown -R ysoftman:admin *
# case3
# python setup.py egg_info 에러 발생하는 경우
# pip 와 setuptools 를 최신으로 업그레이드 하자
sudo pip install --upgrade pip setuptools
# case4
# docker package 를 찾지 못하는 에러가 발생하는 경우
python -c "import docker"
ImportError: No module named docker
# 패키지는 설치된것으로 나온다.
pip list | grep docker
# 이럴땐 pip 로 해당 패키지를 unistall 해주고
sudo pip uninstall -y docker docker-py
# pip 로 docker 패키지를 다시 설치하자.
# 참고로 최신 docker 패키지에 docker-py 기능이 포함되어 있어
# docker-py 를 설치하면 다음의 에러가 발생하여 docker 만 새로 설치해야 한다.
# module' object has no attribute 'APIClient'
sudo pip install --force-reinstall --no-cache-dir docker