우선은 Macport(darwinport)를 지우고 Homebrew를 설치해야 하는데 찾다보니 갈아타기를 정리한 한글문서가 있어서 링크한다.
잘가 macports. 반갑습니다. homebrew.
Macrpot를 지우고 Homebrew를 설치하는 건 위 사이트의 내용대로 했다. 이 후 /usr/local/bin과 /usr/local/sbin의 경로를 세팅해 주는 것도 해 주고, /usr/local의 소유주를 내 계정으로 바꿨다. 자 이제 시험삼아 wget을 설치.
$ brew install wget잘 된다. 다음 패키지 리스트를 한번 업데이트 해 주고...
$ brew update
Python을 설치한다. 2.7.1 버전이 있었다.
$ brew install python --framework잘 된다.
$ brew install pip알려진대로 easy_install로 설치하라는 경고가 나오고 설치가 중단된다. 그렇게 설치해보자.
$ easy_install pip
자 이제 또 하나의 시험. ipython을 설치한다.
$ pip install ipython ... error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.6/share': Permission denied ...이런. 에러가 나온다. 저건 Homebrew로 설치한 곳이 아닌데 왜 저기다 설치하려는 걸까?
한참을 고민하다 혹시나 해서
PYTHONPATH
를 새로 잡아줘봤다. ~/.bashrc
파일을 열어서 다음 라인을 추가한 후 source ~/.bashrc
로 적용했다.export PYTHONPATH='/usr/local/lib/python2.7/site-packages'
다시 pip로 ipython 설치를 시도했지만 동일한 오류가 나왔다. 으악!!!!
또 한 참을 고민하다 위의 퍼미션 문제가 나는 곳에 뭔가 해답이 있나 싶어서 살펴보다가 Python.framework 밑에 Current라는 심볼릭링크가 있는 걸 발견하고 이 녀석을 Homebrew로 설치한 python의 것으로 바꾸어 주었다.
$ cd /System/Library/Frameworks/Python.framework/ $ sudo rm Current $ sudo ln -s /usr/local/Cellar/python/2.7.1/Frameworks/Python.framework/Versions/Current Current
다시 pip로 ipython 설치 시도. 또 똑같은 에러다!!!! 악 악 악 악 악!! 으악! 빌어먹을!!
혹시나 해서 pip가 어떤 것으로 실행되고 있는지 파악해봤다.
$ which pip /usr/local/bin/pippip 자체의 문제는 아닌 것 같은데...?? 그럼 easy_install이 범인일까?
$ which easy_install /usr/bin/easy_install헉! /usr/local 의 녀석이 아니다. 네녀석이 범인이구나! 그래서 easy_install을 Homebrew로 설치한 Python의 것으로 교체하기 위해 검색해봤다.
$ find /usr/local -name "easy_install" /usr/local/share/python/easy_install왠지 답이 나온 것 같았다.
~/.bashrc
에 /usr/local/share/python을 /usr/bin 보다 먼저 오도록 설정하고 적용했다.자 다시!
easy_install pip
을 실행시켰고... 이번에는 된다!!! 가 아니라 또 동일한 에러가 떴다. 영어의 F*CKING!!! 이라는 욕이 자연스럽게 나올 때도 있다는 것을 알게 되었다.pip 공식문서에서 설정에 관한 부분을 찾아봤는데 전혀 도움이 되는 내용이 없었다.
원인을 뭘까 또 한참을 고민하다 '에라 모르겠다 pip 소스다 쳐다보자' 라고 생각해서 pip 실행 스크립트를 vi로 한번 열어봤다.
vi /usr/local/bin/pip
...소스를 천천히 살펴봤지만 흥미... 아니 설정으로 생각되는건 전혀 보이지 않았다. 그러다 첫 줄의 내용을 발견을 경악을 금치 못 했다.
#!/usr/bin/python이번엔 영어의 S*CKS!!! 라는 욕과 일본어의 ちっくしょう! 라는 욕도 함께 나와줬다. 아하하. 아하하하하 아하하.
그랬다. pip가 OS X 의 기본 python을 호출해서 돌아가고 있었던 것이었다. 이 첫 줄을... env를 이용하도록 해도 되겠지만 하도 열이 받쳐서 그냥 Homebrew로 설치한 python으로 못 박아버렸다.
#!/usr/local/bin/python
하하. 이제 되겠지.
$ pip install ipython된다! 되! 으하하하하하!!!!
ipython 설치하면서 미쳐가는 것 같다. 대략 5시간 정도 삽질한 것 같은데 정말 사람 피 말리는 줄 알았다. (Python 은 업무와 연관이 있다보니 -_-)
정리하자면, /usr/bin/python 을 직접 호출하는 스크립트가 있을 수 있으니 /usr/bin/python의 이름을 바꾸고 Homebrew로 설치한 python을 /usr/bin/python으로 링크시키는 것이 가장 명화한 해결책이 될 것 같다.
virtualenv 등을 활용하는게 더 나을 수도 있다. 하지만 내 경우 멀티버전 테스팅은 거의 필요없기 때문에 virtualenv 따윈 그냥 귀찮은 도구다. 히히...
0 comments:
댓글 쓰기