2019年1月17日木曜日

PythonとRの環境設定(AnacondaからJupyter Notebook)

Pythonでの実習にリクエストがあり、Rの講座もやるのでその環境設定です。
今回はUbuntu16.04にAnacondaを入れ、そこからjupyter notebookを利用していきます。

(1) Anacondaのインストール
Ubuntuにログインして、ユーザの追加をしておきます。
# useradd -m -s /bin/bash mizunolab001
# su - mizunolab001

Anacondaをダウンロード
$ wget https://repo.continuum.io/archive/Anaconda3-2018.12-Linux-x86_64.sh
インストール
$ bash Anaconda3-2018.12-Linux-x86_64.sh




 一度、ログアウトしてから再度ログインする。
バージョン確認
$ conda -V

(2) jupyter-notebookの設定
jupyter-notebookは外部からログインして利用することとします。外部からアクセスできるように設定します。
(i) コンフィグファイルの生成
$ jupyter-notebook --generate-config
$ vi .jupyter/jupyter_notebook_config.py
(ii) 外部アクセスの設定
現在localhostになっているので、0.0.0.0に変更します。
(iii) 起動時にブラウザが起動しないようにする
デフォルトだとjupyter-notebook起動時にブラウザが起動します。今回は外部からアクセスするので、ローカルでのブラウザ起動は必要ありません。Falseに変更します。
(iv) ポートの設定
必要に応じて利用するポート番号を変更します。デフォルトは8888で、既に利用して入れば連番で番号が増えていきます。


(v) パスワードの設定
デフォルトでは外部からアクセスするときにTokenが必要になり面倒です。パスワードを設定してアクセスできるようにします。一度viからquitします。
$ ipython3
In [1]: from notebook.auth import passwd
In [2]: passwd()
Out[2]: 'sha1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
このsha1の値を利用します。
In [3]: quit()
$ vi .jupyter/jupyter_notebook_config.py
Tokenを書き込みます。
 jupyter-notebookを起動します。
$ jupyter-notebook
外部からブラウザでアクセスします。
http://サーバ名 or IPアドレス :8888
パスワードを求める画面が出てきます。
パスワードを入力するとログインできます。

(3)HelloJupyterを作成
動作確認のため、HelloJupyterを作成します。New から Python 3を選択します。
タイトル名をクリックして、タイトルを変更します。
最初の部分は見出しにします。CodeからMarkdownに変更します。見出しを入力しておきます。
Shift + Enterで実行されます。

次はpythonコードを書いておきます。
Shift + Enterで実行します。
もう一つ
MarkdownでTex数式を書いてみます。

サーバのコマンドを実行します。!をつけることでコマンドが実行されます。
画像のアップロードをします。ドラッグ&ドロップするだけでできます。



(4) Rの導入
ユーザベースでRを入れていきます。jupyter-notebookが実行されている場合は、Ctr+Cを2回で終了させます。
$ conda install -c r r-essentials
ちょっと時間がかかります。
jupyter-notebookを再度立ち上げます。
$ jupyter-notebook
今度はNewからRを選択します。
タイトルを「HelloJupyterR」としておきます。Rのロゴも右上に見えます。一つめは同じくMarkdownで見出しを書いておきます。
Rのコードを入れて、Shit+Enterで実行します
Rでの実行が確認できました。
参考
 https://www.anaconda.com/download/#linux
https://anaconda.org/chdoig/jupyter-and-conda-for-r/notebook
http://starpentagon.net/analytics/remote_jupyter_notebook/
 https://ymgsapo.com/remote-access-jupyter/
https://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c