jupyter 는 웹 환경에서 구동되는 꽤 괜찮은 컴파일러? 같습니다.
jupyterhub 라는 서버 구축 전용 어플리케이션이 있는 것 같기는 한데 ssh 인증 과정에서 어려움을 겪어서 저는 그냥 포기하고 jupyter 를 이용하여 홈 서버를 구축하였습니다.
개인적으로 포스팅을 할 수 있지만 현재 우분투 서버에 여러가지를 설치하기도 복잡하고 개인용 컴퓨터는 다른 곳에 있어서 아래와 같이 필요 정보들을 링크로 남기겠습니다.
1. 먼저 홈 네트워크에서 포트포워딩을 통해서 제가 원하는 포트로 jupyter 를 미리 할당해 둡니다.
출처 : http://programmerchoo.tistory.com/2
개인적으로는 netis 를 이용하여 구축하였으나 대부분 iptime 을 이용하시기 때문에 위의 링크로 참고하시면 좋을 것 같습니다.
이상하게 웹 서버는 잘 열리는데 윈도우 원격접속은 안되더라구요.
시간 엄청 썼는데, 나중에 다시 시도해 보려고 합니다.
2. jupyter 를 설치하고
http://goodtogreate.tistory.com/entry/IPython-Notebook-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95
Jupyter가 다중 kernel을 지원한다고 한다.
즉, python 2,3 모두를 지원 한다.
python2는 pip이고 python3은 pip3이다.
pip install jupyter실행 방법
jupyter notebook위와 같은 형태로 설치를 해준다. python3 버전을 사용하려면 pip -> pip3 로 명령어를 사용한다.
실행방법은 jupyter notebook 을 입력하면 된다. 바로 미리 config 파일에 입력 된 형태로 포트가 열리게 된다.
다만 귀찮은 점이라고 한다면 이는 백그라운드 실행 명령어가 아니기 때문에 terminal 을 계속 열어두어야 한다.
3. 단순히 열리기만 할 수는 없으니 서버로 설정해보자. (2와 출처 같음 )
포트포워딩도 되었고, 이제 포트만 설정해서 백그라운드에서 작동하게 해준다면 웹 서버가 됩니다.
우분투환경
Securing a notebook server
jupyter notebook --generate-configprofile 생성없이 defalut내용을 바로 변경한다. 전체 Jupyter에 영향을 미친다.
Writing default config to: /root/.jupyter/jupyter_notebook_config.py위와 같은 명령어 --generate-config 를 입력해주면 보이지 않는 .jupyter 디렉토리가 생성되고 그 안에 config 파일이 생성된다.
파일 위치를 기억해 두는게 좋을 것이다. 대부분 홈이나 루트를 통해서 생성되기 때문에 헷갈리면 두 곳에 가서 cd .jupyter 를 해주면 된다.
juptyer 의 기본 동작을 제어 하는 곳이기 때문에 설정을 몇 개 해야 할 필요가 있다.
다음으로는 암호를 설정해야 한다.
jupyter 는 내부의 디렉토리를 직접 사용하는 것이기 때문에 아무나 사용하면 안된다.
실제 우분투에 있는 파일을 누구나 접근해서 지울 수 있기 때문이다.
linux 에 python 이 깔려있다는 전제 하에서
ipython 을 명령어로 입력한다.
Preparing a hashed passwrod
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:f24baff49ac5:863dd2ae747212ede58125302d227f0ca7b12bb3'그 다음에는 위와 같이 명령어를 입력해주고 원하는 password 를 입력해서 sha1 로 암호화된 값을 얻는다.
jupyter_notebook_config.py를 열어서 아래의 내용을 입력한다.
# Password to use for web authentication
c = get_config()
c.NotebookApp.password =
u'sha1:f24baff49ac5:863dd2ae747212ede58125302d227f0ca7b12bb3'암호화 된 값을 얻으면 .jupyter / jupyter_notebook_config.py
경로로 가서 수정해준다.
서버 설정 내용을 jupyter_notebook_config.py를 열어서 아래의 내용을 입력한다.
# The IP address the notebook server will listen on.
# c.NotebookApp.ip = 'localhost'
c.NotebookApp.ip = '192.168.174.131'
# c.NotebookApp.port_retries = 50
c.NotebookApp.port_retries = 8888다음으로는 위 내용을 config 파일에서 찾아서 수정해준다.
ip 는 자신의 ip 가 포트포워딩을 해야한다면 로컬 ip 로 아니라면 그냥 wan ip 로 입력하면 된다.
port 는 설정하기 나름이다.
기타설정
#실행과 동시에 web-browser를 실행하지 않게 한다.
c.NotebookApp.open_browser = False
#시작 디렉터리를 변경한다.
c.NotebookApp.notebook_dir = u'/root/DataScience/'기타로 설정해야 할 것은 위와 같은 것이 있다.
jupyter notebook 이 실행되면 자동으로 browser 가 실행되는 데 그걸 방지하는 설정,
notebook_dir 는 주피터의 시작 경로를 설정해주는 설정이다.
저 앞에 u 는 입력하지 않아도 되고 원하는 경로를 루트를 시작으로 하여 해주어야 한다.
home 으로 ( ~ / ) 설정했는데 안 된다.
서버를 백그라운드에서 시작하는 방법
$ jupyter notebook& --ip=자신의 ip:port
위와 같이 명령어를 사용하면 열리게 된다.
단 .jupyter / jupyter_notebook_config.py 파일에서 ip 와 포트를 설정해주었다면
$ jupyter notebook&
까지만 실행해 주면 된다.
- 백그라운드로 돌아가고 있는 jupyter notebook 을 끄는 방법
http://stackoverflow.com/questions/38511673/cannot-quit-jupyter-notebook-server-running
위의 링크에 잘 나와있지만 간단히 정리해본다면
netstat -tulpn
위의 명령어를 사용해서 현재 작동하는 PID 를 확인하고
kill ~~~ 를 이용해서 그 PID 를 끄면 됩니다.