최근 사용하려는 클러스터에 Python 2.4가 설치되어 있더군요. 그리고 NumPy와 SciPy가 설치되어 있지 않았습니다. Root 권한이 없었기에 컴퓨터 전체에 설치하는 것이 힘들어 제 개인 계정에 설치하기로 했습니다. 이에 대한 허락은 관리자로부터 얘기하여 받았습니다.
먼저 제가 참조하였던 페이지들의 링크를 올리겠습니다. 이것들을 보면 아마 제가 했던 것을 제대로 하실 수 있으실 것입니다. 제가 설치를 하여 완료한 곳은 CentOS release 5.6 (Final)입니다.
- http://gunheeleo.blogspot.kr/2010/04/python-install-numpy-and-scipy-without.html
- http://www.hongliangjie.com/2012/04/01/install-numpy-and-scipy-on-centos-without-root-privilege/
- http://mishuo.blogspot.kr/2012/07/how-to-install-numpy-and-scipy-in.html
- http://stackoverflow.com/questions/7465445/how-to-install-python-modules-without-root-access
먼저 Python을 설치합니다.
- http://www.python.org/download/ 페이지에 가서 Python 2.7.3 source 파일을 받습니다. (받는 방법은 wget 명령어를 이용하세요.)
- 압축을 풉니다. (tar xvfz 옵션을 넣어주세요 with tgz 확장자)
- 압축을 푼 디렉토리로 이동합니다. (cd 명령어를 이용하세요.)
- make clean
- ./configure –prefix=~/.local
여기서 ~/의 의미는 자기 자신의 home directory를 의미합니다. 제 경우에는 /home/nosyu/입니다. 이는 제 아이디가 nosyu이기 때문입니다. - make
- make install
- 이제 python 실행을 쉽게 하기 위하여 PATH 환경변수에 해당 디렉토리를 추가합니다.
vim ~/.bashrc - export PATH=$HOME/.local/bin:$PATH
위의 것을 삽입합니다. Text file 편집에는 vim 외에 편하신 에디터를 사용하시면 되겠습니다.
이제 Numpy를 설치합니다.
- Numpy 설치에 필요한 LAPACK과 BLAS를 소스 파일을 다운로드 받습니다.
LAPACK: http://www.netlib.org/lapack/
BLAS: http://www.netlib.org/blas/ - 다운로드 받은 파일의 압축을 풉니다.
저의 경우 압축을 풀어서 생긴 directory의 절대 주소는 다음과 같았습니다.
LAPACK: /home/nosyu/download/lapack-3.4.2
BLAS: /home/nosyu/download/BLAS
이는 후에 꼭 필요하기에 자신에게 맞는 주소를 확인합니다.
확인하는 방법은 해당하는 directory에 가서 pwd 명령어를 입력하면 확인할 수 있습니다. - Numpy 소스 파일을 다운로드 받고 압축을 풉니다.
http://sourceforge.net/projects/numpy/ - site.cfg 파일을 만듭니다.
이 때 site.cfg.example 파일을 사용하면 되기에 cp 명령어로 복사하는 것이 좋습니다.
cp site.cfg.example site.cfg - site.cfg 파일을 수정합니다.
vim site.cfg - 다음의 것을 입력합니다. 혹은 #으로 표시되어 주석 처리 되어 있는 것을 #을 없애는 방법으로 편하게 할 수 있습니다. 이것에 대해 잘 이해가 안 되면 그냥 밑에 것을 그대로 복사해서 붙여 넣으세요.
[DEFAULT]
src_dirs = /home/nosyu/download/BLAS/:/home/nosyu/download/lapack-3.4.2/
[blas_opt]
libraries = f77blas, cblas
[lapack_opt]
libraries = lapack, f77blas, cblas - 이 때 src_dirs 뒤에는 2번에서 확인한 LAPACK과 BLAS의 directory의 절대 주소를 넣어야 합니다. BLAS의 것 다음에 :을 넣고 LAPACK의 것을 넣습니다.
- Python setup.py build –fcompiler=gnu95
- python setup.py install –prefix=~/.local
Iinstall을 할 때 설치한 Python의 위치를 알려줍니다. - 이후 설치가 완료되었다면 다른 directory로 이동한 후 python을 실행시켜 test해봅니다.
import numpy
numpy.test(‘full’)
마지막으로 Scipy를 설치합니다.
- Scipy 소스코드를 다운로드 받아서 압축을 풉니다.
http://sourceforge.net/projects/scipy/files/ - Numpy를 설치할 때 사용하였던 site.cfg 파일을 Scipy directory에 복사합니다.
- Python setup.py build –fcompiler=gnu95
- python setup.py install –prefix=~/.local
- 이후 설치가 완료되었다면 다른 directory로 이동한 후 python을 실행시켜 test해봅니다.
import scipy
scipy.test(‘full’) - 제 경우에는 몇 가지 에러가 발생하더군요. 하지만 제가 짠 소스 코드에는 해당 모듈을 사용하지 않기에 신경쓰지 않았습니다.
참고로 test를 할 때 nose가 없다는 메시지가 뜰 것입니다. 이를 해결하기 위해서는 nose 모듈을 설치하면 됩니다. 방법은 여러 가지가 있지만, easy_install 설치와 함께 얘기하겠습니다.
Setuptools(easy_install) 설치
- setuptools 파일을 다운로드 받는다.
http://pypi.python.org/pypi/setuptools - 이 때 소스 파일이 아니라 egg 파일을 다운로드 받습니다. 저는 Python 2.7이기에 setuptools-0.6c11-py2.7.egg을 다운로드 받았습니다.
- sh setuptools-0.6c11-py2.7.egg –prefix=~/.local/
- 설치가 완료되었습니다. 참고로 저는 prefix 옵션을 넣지 않았습니다. 그래도 혹시 모르니 넣으시길 바랍니다.
Python Package Index(pip) 설치
- pip 소스코드를 다운로드 받아서 압축을 푼다.
http://pypi.python.org/pypi/pip - 압축을 푼 directory에서 다음을 실행한다.
python setup.py install –prefix=~/.local - 설치 완료
pip 사용하여 nose 패키지 설치하기
- pip install –user nose
–user 옵션을 넣으면 거기에 맞춰서 자동으로 처리됩니다. 참고로 numpy나 scipy도 이렇게 pip를 설치한 후 설치를 시도하니 되기는 됩니다. 하지만 무언가 이상한 것 같아 위의 방법을 사용하였습니다.
이 문서는 제가 훗날 필요할 것이라 가정하여 작성하였습니다.
더 쉬운 방법은 Anaconda를 이용하는 것입니다.
https://www.continuum.io/downloads