LoginSignup
8
10

More than 5 years have passed since last update.

Windowsで、Linuxのpython仮想環境を構築するまで。

Posted at

導入: 何番煎じか分かりませんが...

Windowsマシンしか持ってないけれど、Linux環境が欲しくなったので、そのときやったことのメモ。
Pythonの仮想環境もついでに作る。

実行環境

- OS: Windows10
- CPU: intel core i5
- memory: 4GB

背景知識として

ホスト(今回はWindows10)上でVirtualBoxが動き、その上でゲスト(今回はUbuntu14.04)が立ち上がる。
ホスト-ゲスト間の通信はSSHで行うのが一般的。

前準備: 各種ツールのインストール

- VirtualBox

仮想化ソフトのうちの一つ。インストーラが以下で入手できる。
Downloads - Oracle VM VirtualBox

ホストによってインストーラが違うので注意。今回はVirtualBox 5.0.20 for Windows hosts x86/amd64 をインストールした。

- Vagrant

こいつで仮想環境を管理するとべんり。CLI(Command Line Interface)から扱える。インストーラは以下から。
Vagrant by HashiCorp

vagrant-teraterm
teratermで仮想OSにSSH接続する際に、いちいちポート番号を確認するのが面倒なので、プラグイン作った人がいる。下記をプロンプトで実行してインストール。

vagrant plugin install vagrant-teraterm

- Packer

OSのISOイメージから、各種設定項目を記述したjson形式のテンプレートファイルを元に、仮想OSイメージを作成する。出力はVMwareで読めるものとVirtualBoxで読めるものを両方作れるが、今回はVirtualBoxだけ。インストーラは下記より。
Downloads - Packer by HashiCorp

導入手順

  1. ISOからBoxを生成
  2. Boxから仮想OSを初期化し、仮想OSへSSH接続
  3. 仮想OSへPythonの仮想環境を構築

以下詳述。

- 1. ISOからBoxを生成、vagrantに追加

A list of base boxes for Vagrant - Vagrantbox.es
上記に、各種BoxのURLがある。BoxのURLを、以下のようにしてBoxを追加できるが、だれが作っているのか分からないので、安全性に?が付く。なるべく自分で作ることをお勧めする。

vagrant box add {title} {url}  //{title}はosの名前で任意

Boxを自分で作るには、ISOイメージを落としてきて、これをPackerに投げる。
Packerに投げてBoxを生成するときの各種設定項目は、json形式で与えることができる。このjsonテンプレートは時雨堂が配布してくれている。
https://github.com/shiguredo/packer-templates

Packerの使用法は、下記を参考にした。
Packerを利用したUbuntu14.04 ServerのVagrant用Boxファイルの作成

- 2. Boxから仮想OSを初期化し、仮想OSへSSH接続

  1. でBoxが追加されているなら、
vagrant init {title}
vagrant up

で初期化、起動できる。一つのディレクトリに一つの仮想OSであることに注意。作りたいディレクトリで初期化を実行する。
初期化には結構時間がかかるが慌てず、放置しておk。

起動後は、予め追加しておいたteratermプラグインで、

vagrant teraterm

で自動的にteratermへSSH接続してくれる。本来なら、いちいちポート番号とパスワードを要求してくるところを、一行でできるようになっている。便利な世の中である。
ちなみに、パスワードはvagrant。

- 3. 仮想OSへpythonの仮想環境を構築

これは非常に簡単で、次を参照した。
Ubuntu14.04にpyenv,Anaconda,MeCabをインストールしPython3環境構築

{version}には、

pyenv install --list

で確認できるバージョンを入力してあげればおk。

sudo apt-get install git gcc g++ make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
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
exec $SHELL
pyenv install anaconda3-{version}
pyenv rehash
pyenv global anaconda3-{version}

以上。

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10