備忘録:Xserver上のPython, Jupyter notebookをローカル(Mac)から使う
はじめに
ブログで導入したXserverをもっと有効活用出来ないか?
→ ローカルでの解析をサーバーで出来ればもっと重たい処理も出来て便利なのでは、と考えました。
そこで、MacからXserver上のJupyter notebookが使えるようになるまでの環境構築について調べた備忘録です。
同様なことを記事にしている優秀な参考サイトはたくさんありましたので、実際自分が環境構築した際につまずいたところを記録として残します。何かの参考になれば幸いです。
MacのターミナルからXserverにssh接続
下記の記事を参考に無事接続出来ました。ありがとうございます。
Linuxbrewインストール
下記記事が大変参考になりました。
【Xserver】Linuxbrewインストール&アップデート
下記コマンドよりインストールを始めましたが、LinuxbrewはHomebrewに統合されたようでした。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
Warning: Linuxbrew has been merged into Homebrew.
Please migrate to the following command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
途中、下記メッセージが出てましたが、Returnすると続けてインストールを開始しました。
残念ですが、ユーザー XXXXXX は sv**** 上で sudo を実行できません。
約1時間くらいかかりましたが、無事インストールされました。
インストール完了時のメッセージとして、PATHの設定などがありましたので、メッセージに従い設定しています。
brew doctorで確認してみると、下記エラーが表示されました。
[XXXXXX@sv**** ~]$ brew doctor
Error: Please update your system cURL.
Minimum required version: 7.41.0
Your cURL version: 7.29.0
Your cURL executable: /usr/bin/curl
検索したところ、同じ事例がありましたので、その解決策で無事にエラーは出なくなりました。素晴らしい。
Xserver上のHomebrew(Linuxbrew)実行時にサーバー側の(古いバージョンの)cURLを参照しないようにしたい
解決策: .bash_profile に下記を追加。
export HOMEBREW_FORCE_BREWED_CURL="1"
2021年1月23日インストール時点では下記Versionがインストールされています。
[XXXXXX@sv**** ~]$ brew --version
Homebrew 2.7.5
Homebrew/linuxbrew-core (git revision cd05cb; last commit 2021-01-23)
pyenv, Anacondaのインストール
同じサイトが大変分かりやすく参考になりました。インストール時に特に違いはありませんでした。
Anaconda3-2020.11をインストールしました。Pythonは3.8.5でした。
[XXXXXX@sv**** ~]$ pyenv install anaconda3-2020.11
[XXXXXX@sv**** ~]$ pyenv versions
* system (set by /home/XXXXXX/.pyenv/version)
anaconda3-2020.11
[XXXXXX@sv**** ~]$ pyenv global anaconda3-2020.11
[XXXXXX@sv**** ~]$ python -V
Python 3.8.5
仮想環境構築
折角?Anacondaをインストールしたので、仮想環境を構築します。
ただ、仮想環境を構築して必要なライブラリを追加するなら、別にAnacondaを入れなくていい気がして今ひとつしっくりきません(condaが使えるのはメリットですが)。どうなんでしょう?
conda create -n envname python=3.8 numpy pandas matplotlib
conda activate envname
しかし構築した仮想環境をactivateしたところ、下記メッセージが出て切り替えが出来ませんでした。
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
conda initを調べてみると、下記記事がありましたので参考にしました。
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
[XXXXXX@sv**** ~]$ conda init bash
[XXXXXX@sv**** ~]$ source .bashrc
これによりコマンドライン先頭に(base)が付くようになりました。
(base) [XXXXXX@sv**** ~]$
再度、仮想環境をactivateすると無事切り替わりました。
(base) [XXXXXX@sv**** ~]$ conda activate envname
(envname) [XXXXXX@sv**** ~]$ conda info -e
# conda environments:
#
base /home/XXXXXX/.pyenv/versions/anaconda3-2020.11
envname * /home/XXXXXX/.pyenv/versions/anaconda3-2020.11/envs/envname
サーバーで Jupyter notebook を使いたい
設定の仕方は下記を参考にしました。ありがとうございます。
・SSH先のサーバ上のjupyter notebookをローカルPCで操作する
基本的な設定方法は参考サイト通りです。最終的な設定を残します。
【サーバーの設定】
サーバーの仮想環境にjupyterを追加。(まだ入れてなければ)
conda install jupyter
.jupyter/jupyter_notebook_config.py に下記を追加。パスワードは別途設定しています。ポート番号は任意です。
c = get_config()
c.NotebookApp.open_browser = False
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 9999
c.NotebookApp.allow_remote_access = True
c.NotebookApp.password = 'sha1:0000...'
【ローカルの設定】
.ssh/config に LocalForward 9000 localhost:9999 を追加。
Host xsrv
Hostname XXXXXX.xsrv.jp
Port 10022
User XXXXXX
IdentityFile ~/.ssh/id_xserver_rsa
LocalForward 9000 localhost:9999
ServerAliveInterval 60
設定は以上。再度下記でログイン後、jupyter notebookを起動。
ssh xsrv
ローカルのブラウザに下記を打ち込み、設定したパスワード入力して無事ローカルでjupyter notebookが使えるようになりました。
http://localhost:9000
今後、色々試していこうと思います。
Author And Source
この問題について(備忘録:Xserver上のPython, Jupyter notebookをローカル(Mac)から使う), 我々は、より多くの情報をここで見つけました https://qiita.com/Shin-Bass/items/4421c78031020e34bfa6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .