Vagrant + Anaconda + Python3 + jupyter notebook環境導入
概要
Macbook上にVagrantを用いて、Python3の環境導入を行います。
環境は以下
ホスト
・macOS High Sierra 10.13.4
・VirtualBox 5.2.1
・Vagrant 2.0.4
ゲスト
・CentOS7
・Anaconda3-5.2.0
・Python3.6.5(Anaconda経由でインストール)
Mac
MacへのVirtualBoxとVagrantは適当にGUIでインストール
Vagrantfile
VagrantでVitual Machine(VM)を作成するには、設定ファイルであるVagrantfileが必要です。 VMを作成するためのディレクトリを作成して、コマンドを実行
mkdir vagrant_dir cd vagrant_dir vagrant init
これでVagrantfileが作成されます。 次にVagrantfileの編集。
vim vagrant file Vagrant.configure("2") do |config| # Box config.vm.box = "centos/7" # 仮想マシンのネットワーク環境設定 # "private_network"を指定するとホストOSからのみアクセス可 config.vm.network "private_network", ip: "192.168.33.10", auto_config:true config.vm.network "forwarded_port", guest: 8888, host: 8888 # ホスト側とゲスト側で共有するフォルダ。この場合Vagrantfileが存在するフォルダが/var/www/shareになります。 config.vm.synced_folder "./", "/var/www/share" # プロバイダの指定 config.vm.provider "virtualbox" do |vb| # GUI今回は不使用 vb.gui = false # 仮想マシンの名前 vb.name = "CentOS" # メモリ(MB) vb.memory = "2048" # CPU vb.cpus = 2 end end
Boxの追加
Vagrantbox.es (http://www.vagrantbox.es/) からお目当のボックスを探しましょう。
vagrant box add centos7.1 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box
Vagrantの起動
起動します。次回からはこれ以降の手順がスタートです。
# 対象ディレクトリに移動 cd vagrant_dir # 起動 vagrant up #仮想環境へ接続 vagrant ssh
Vagrantのシャットダウン、休止
# シャットダウン vagrant halt # 一時停止 vagrant suspend
CentOS
ここからはゲストOSでの作業になります。
##firewall停止 sudo systemctl stop firewalld sudo systemctl disable firewalld sudo set enforce 0
gitのインストール
sudo yum -y install git
pyenvのインストール
zshを使用している方は bashrcをzshrcで読み替えてください。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="PYENV_ROOT/bin:PATH"' >> ~/.bashrc echo 'eval "(pyenv init -)"' >> ~/.bashrc source ~/.bashrc
anacondaのインストール
# anacondaのバージョン確認 pyenv install -l | grep anaconda # 最新版インストール pyenv install anaconda3-5.2.0 pyenv rehash # anacondaをpythonのデフォルトに設定 pyenv global anaconda3-5.2.0 echo 'export PATH="PYENV_ROOT/versions/anaconda3-5.2.0/bin/:PATH"' >> ~/.bashrc source ~/.bashrc # condaのアップデート conda update conda
Jupyter notebook
jupyter notebookはノートブックと呼ばれる形式で作成したプログラムを実行し、結果を記録しながらデータの分析を行うことができます。
変数の中身を見たり、デバッグをしたりといったことも簡単に行えるので機械学習の際は超お世話になります。
Anacondaをインストールした段階で、勝手にインストールされているので起動してみましょう。
# --ip=0.0.0.0 はlocalhost以外でのアクセスをする場合に必要。 jupyter notebook --no-browser --ip=0.0.0.0 # 起動後はCtrl + c でサーバー停止出来ます。
PC上のブラウザからVagrant上のJupyterへアクセス
Vagrant上のIPアドレスでアクセス
http://192.168.33.10:8888
tokenが必要みたいなことを言われるので、ホストOSで
# Jupiter のlist表示
jupiter notebook list
を実行し、tokenを貼り付ける。
サンプルコードの実行
ブラウザの右上に表示されているプルダウンメニューから New -> Python3 を選んで下記のコードを実行
%matplotlib inline import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10, 1) y = np.sin(x) plt.plot(x, y)
こんな感じの出力がされたらOKです。