ホーム >  Python >  VagrantでCentOS7 + Python + Django環境を作る(その2 Pythonとpyenv + virtalenv)


Posted:2017/06/30 9:00:09 AM|Category : Python

VagrantでCentOS7 + Python + Django環境を作る(その2 Pythonとpyenv + virtalenv)

Vagrantを使い、WebフレームワークであるDjangoを環境を作ります。その前に、仮想環境にPythonをインストールします。

仮想環境にPythonをインストール

前回、VagrantにCentOS7を立てました。今回は、ここにPythonをインストールしたいと思います。また変な話ですが、Pythonのバージョン管理ができるように、仮想環境の中に仮想環境(pyenv + virtalenv)をつくります。

準備

Vagrantでゲスト環境(仮想環境)を作ります。ゲスト環境の中にDjangoを構築します。その前に、以下の作業を終わらせましょう。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

③Vagrantにcentos7環境を作ります。

VagrantでCentOS7 + Python + Django環境を作る(その1 仮想環境作成)

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
Python 3.6.1
pip 9.0.1
Web フレームワーク Django 1.11.2
データベース MariaDB 5.5.52-1.el7.x86_64
Webサーバ nginx 1.13.2

Vagrantへログイン

①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。

cd vagrant/django_apps/

②【ホスト環境】仮想マシンを起動します。

vagrant up

③【ホスト環境】ログインします。

vagrant ssh

ゲスト環境にPython3インストール

CentOS7では、デフォルトでPython2.7.5がインストールされています。以下のコマンドで確認することができます。

python --version
Python 2.7.5

①【ゲスト環境】srcディレクトリに移動します。

cd /usr/local/src

②【ゲスト環境】以下のサイトからダウンロードするバージョンを探します。

python.org

③【ゲスト環境】python3.6.1をダウンロードします。

sudo wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

④【ゲスト環境】圧縮ファイルを解凍します。

sudo tar xzvf Python-3.6.1.tgz

⑤【ゲスト環境】lsコマンドを実行し、解凍できたか確認します。

ls -l -a
合計 22024
drwxr-xr-x.  3 root root       48  6月 26 23:55 .
drwxr-xr-x. 12 root root     4096 11月  5  2016 ..
drwxr-xr-x  17  501  501     4096  3月 21 07:47 Python-3.6.1
-rw-r--r--   1 root root 22540566  3月 21 07:47 Python-3.6.1.tgz

⑥【ゲスト環境】lsコマンドを実行し、解凍できたか確認します。

cd Python-3.6.1
sudo ./configure
sudo make
sudo make altinstall

⑦【ゲスト環境】インストールが完了したら、バージョンを確認します。

/usr/local/bin/python3.6 --version
Python 3.6.1

⑧【ゲスト環境】Python 3.6.1コマンドのPATHを通します。

sudo ln -s /usr/local/bin/python3.6 /usr/bin/python3

⑨【ゲスト環境】パスを通せば、「python3」コマンドでPython3.6.1を呼び出すことができます。つまり、用途に応じてPython2系とPython3系を使い分けることができます。

python3 --version
Python 3.6.1
python --version
Python 2.7.5

ゲスト環境にpipをインストール

Pythonのパッケージマネージャであるpipをインストールします。

①【ゲスト環境】現在インストールされているパッケージを表示します。

python3 -m pip list

※Python2系では2.7.9以降、Python3系では3.4以降からpipがデフォルト機能としてインストールされています。

②【ゲスト環境】pipが古い場合はアップデートします。

sudo python3 -m pip install --upgrade pip

③【ゲスト環境】pipのバージョンを確認します。

pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

④【ゲスト環境】pipを使うたびに「 python3 -m pip」というコマンドを打つのは面倒です。シンボリックリンク「pip3」コマンドでPython3系のpipを呼び出すようにします。

sudo ln -s /usr/local/bin/pip3.6  /usr/bin/pip3
pip3 --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

ゲスト環境にpyvenvをインストール

pyenvは、利用パッケージやpythonのバージョンを、プロジェクト単位で切り替えることができる仮想実行環境です。

開発段階においては、複数の機能実装を並行して開発する場合が多くなります。仮想実行環境を利用することでより、アプリケーションごとに開発環境を切り替えてテストしたり、動作させるためのパッケージを明らかにすることができます。

①【ゲスト環境】OSのバージョンを確認します。

uname -r
3.10.0-229.el7.x86_64

②【ゲスト環境】CentOSで必要となるパッケージのインストールします。

sudo yum -y install git
sudo yum -y groupinstall "Development Tools"
sudo yum -y install readline-devel zlib-devel bzip2-devel sqlite-devel openssl-devel

③【ゲスト環境】pyenvをcloneします。

https://github.com/pyenv/pyenv

git clone https://github.com/yyuu/pyenv.git ~/.pyenv

④【ゲスト環境】「~/.bash_profile」を編集します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
exec $SHELL -l

ゲスト環境にvirtualenv をインストール

①【ゲスト環境】virtualenvをcloneします。

https://github.com/yyuu/pyenv-virtualenv

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

②【ゲスト環境】「~/.bash_profile」を編集します。

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
exec $SHELL -l

ゲスト環境にpyvenvで仮想環境を構築

①【ゲスト環境】使いたいバージョンをインストールします。

pyenv install 3.6.1

②【ゲスト環境】インストールしたバージョンを確認します。

pyenv versions
* system (set by /home/vagrant/.pyenv/version)
  3.6.1

③【ゲスト環境】「/vagrant」ディレクトリにアリケーション用のディレクトリを作ります。

cd /vagrant/
mkdir django_apps
cd django_apps/

④【ゲスト環境】仮想環境を作ります。

pyvenv-3.6 venv_app1

あれ?非推奨と出てしまいました。

WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`

⑤【ゲスト環境】仕切り直しに「venv_app1」ディレクトリを削除し、もう一度仮想環境を作成します。

python3.6 -m venv 環境名

rm -rf venv_app1
python3.6 -m venv venv_app1

⑥【ゲスト環境】venvを有効化します。

cd venv_app1
source ./bin/activate

以下のようなプロンプトが表示されれば有効化完了です。

(venv_app1) [vagrant@localhost venv_app1]$ 

⑦【ゲスト環境】環境を確認します。

python --version
Python 3.6.1
which python
/vagrant/django_apps/venv_app1/bin/python
pip --version
pip 9.0.1 from /vagrant/django_apps/venv_app1/lib/python3.6/site-packages (python 3.6)

⑧【ゲスト環境】仮想環境を無効にするには以下のとおりです。

deactivate

再度仮想環境を有効にします。

source ./bin/activate

次回

次回は、ゲスト環境(仮想環境)にMariaDBをインストールします。

VagrantでCentOS7 + Python + Django環境を作る(その3 MriaDB)


トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 2008年04月 金融機関系I

最近の投稿
人気記事
カテゴリー
広告