'coding' Category

ipython 설치

ubuntu 12.04 에서 ipython을 설치하고 ipython notebook 을 웹브라우저로 접속해보자.

사실 그냥 apt-get install ipython-notebok 명령으로 매우 간단하게 설치할 수 있다.
하지만 ubuntu 12.04 에 포함된 ipython 은 지난 버전이고 웹인터페이스가 좀 구리고 기능이 떨어진다.
그래서 pip를 통해서 최신버전을 설치할 것이다.

 

필요한 패키지를 미리 설치한다.

 

virtualenv를 이용하여 가상환경에다가 설치하자.

 

 

준비가 되었으니 ipython을 설치하자

 

 

jinja, tornado, sphinx, zmq 등 이것저것 막 설치된다.
뭐가 설치됐나 보자.

 

 

ipython을 실행해보자.

이제 ipython notebook 도 실행해보자.

 

 

실행하면 잠깐 실행에 대한 출력이 보이더니 텍스트웹브라우저인 w3m화면으로 넘어간다.
이건 볼 필요가 없으므로 q 키를 눌러 빠져 나오면 아래와 같이 나온다.

 

웹브라우저에서 http://127.0.0.1:8888 으로 접속하면 ipython notebook 의 화면을 볼 수 있다.

 

그런데 ipython notebook 의 실행될 때 바인딩되는 주소가 127.0.0.1이기 때문에
ipython을 서버에 설치하고 외부에서 접속할려면 바인딩되는 주소를 수정할 필요가 있다.

설정을 수정해보자.
설정을 수정할려면 설정파일을 생성해야 한다.

설정파일 중 /home/magellan/.ipython/profile_default/ipython_notebook_config.py 열어서 아래처럼 수정한다.

 

 

다시 ipython notebook을 실행해보자.

 

접속주소가 http://0.0.0.0:8888/ 로 된 것을 확인할 수 있다.

이제 웹브라우저에서 http://서버주소:8888 로 접속하면 ipython notebook 화면을 볼 수 있다.

Cap 2013-10-24 17-34-06-710

mod_wsgi를 이용한 multiple apps 세팅

django나 flask, bottle 같은 파이썬프레임웍을 apache에 붙이기 위해 mod_wsgi를 이용할 때
여러개의 app을 사용하게 되면 각 app별로 process를 유일한 이름을 세팅해야 된다.
그렇지 않으면 기대하지 않은 결과가 발생할 수 있다.

보통 wsgi 세팅할 때,


이렇게 세팅하는데 여기에 app을 하나 추가한다면 아래와 같이 할 수 있다.

 


 

근데 이렇게 하면 hyunsu.com/myapp 으로 연결했을 때 hyunsu.com/myapp2의 컨텐츠가 로딩되고
물론 hyunsu.com/myapp2로 연결하면 hyunsu.com/myapp의 컨텐츠가 로딩되기도 한다.

하나의 process에 여러개의 apps을 연결할 때, 각각의 apps의 경로가 중복되면 이런 현상이 발생하는 것으로 보인다.

이런 문제를 피하기 위해 각 apps별로 process를 분리해야 한다.


 

여러개의 app이 하나의 VirtualHost 내에 있든, 여러 VirtualHost에 각각 나눠져 있든지 간에 각 app은 각 process를 가지야 한다.