【Python】VirtualBoxとVagrantで環境構築

Python
クローリング&スクレイピングを始めたく
この本を買ってみました。

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

まだ勉強途中ですが
整理したことつまずいたこと
残しておこうと思います。

Pythonの環境構築

VirtualBoxとVagrant

自PCのOSはWindows10ですが
ここにPythonが実行できる環境を作ります!

整理
物理マシン自PC
ホストOSWindows
仮想マシンVirtualBox
仮想マシン操作ソフトVagrant
ゲストOSUbuntu

何がどこの名称か分からなくなってしまったので
上記に整理しました。

PythonはOSがWindowsよりも
Linuxの方が便利に使えるらしく
本書でも推奨されていました。

細かな手順は省きますが
大枠として以下3つの準備を行いました。

①自PC(物理マシン)に仮想マシン(VirtualBox)構築
②仮想マシン内にゲストOS(Ubuntu)構築
③VirtualBoxを操作可能なソフトVagrantをインストール

MEMO
ゲストOSのUbuntuはLinuxをベースにしたOS
MEMO
ゲストOSはNATを介してホストOSの外部に接続できる

vagrantで仮想マシン(VirtualBox)操作

コマンドだけ整理すると

整理
起動vagrant up
接続vagrant ssh
再起動vagrant reload
終了vagrant halt

最初こんがらがってしまったのですが
これは仮想マシンに対する操作 であって
ゲストOSに対する操作ではない!ということ。

当たり前っちゃ当たり前だけど
初めはすっと飲み込めなかった…。

要は
①仮想マシンを起動、仮想マシンに接続
②ゲストOSを操作
③仮想マシンを終了

普段PCを立ち上げて使う事と
なんら変わりませんね。

あとはPythonをインストールすれば
とりあえずスクリプトファイル(.py)が
動く環境になります!

ホスト・ゲスト間でフォルダがマウントされない

本書ではまずWgetというソフトを使って
Web上の画像をダウンロードしてみよう!
という事でやってみました。

ゲストOS内で実行しているので
ゲストOS内のフォルダにダウンロードされました。

通常ホストOSの共有フォルダにも
ダウンロードした画像が出てくるのですが…
全く出てきません・・・。

MEMO
①ホストOS:Vagrantfileのあるフォルダ
②ゲストOS:/vagrant/ フォルダ
①と②は共有フォルダ

以下2つを試して直すことが出来ました!

※参考サイト
vagrant up 時の共有フォルダのマウントエラー解消方法

Vagrantfileに追記

ホストOSにあるVagrantfileに以下を追記しました

追記文
config.vm.synced_folder “.”, “/home/vagrant”, type: “virtualbox”
MEMO
ゲストOS内でカレントディレクトリを確認すると
/home/vagrant/
MEMO
リアルタイムで同期したい場合は
type: “virtualbox”

vagrant-vbguestのインストール

ホストOSにて以下コマンドを実行

コマンド
vagrant plugin install vagrant-vbguest

実は仮想マシン立上げの際出ていたエラーを
見落としていまして…

「Guest Addtionsをインストールして」と出ておりました。
このコマンドを実行すると更新されて
マウント成功することができました!

Pythonでクローリング挑戦中!

Wgetでクローリングを体験してみて
イメージを掴むことが出来ました!

いま本書を見ながらPyhtonで挑戦しています!

記事がまだ本格的な内容ではありませんでしたが
環境構築にて少しでも参考になれば幸いです。

また習得していく中で
共有できる部分を発信していきます!