やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Pythonエンジンの仮想環境構築と利用方法まとめ

Python実行エンジンはpyenvで仮想環境を用意すると安全かつ確実に使える。

開発環境

Python

Pythonプログラミング言語のひとつ。

test.pyファイルにソースコードを書く。

print('Hello Python !!')

ターミナルを起動してコマンドを叩く。

$ python test.py

実行結果。

Hello Python !!

プリインストール

Linuxには最初からPythonがインストールされていることがある。もし手動でインストールするなら、Pythonソースコードを取得し、コンパイルすることになる。面倒なのでpyenvでインストールしたい。

http://d.hatena.ne.jp/As_hsp/20111220/1324344089

バージョン2と3

Pythonはバージョン2と3で互換性がない。しばしば2と3両方プリインストールされていることがある。

ver コマンド
2 python
3 python3

pythonコマンドで統一したいのだが、デフォルトではそうなっていない。pyenvなら可能。

複数バージョン共存

バージョン2, 3にはそれぞれさらに細かいバージョンがある。

一般 Python FAQ — Python 3.6.1 ドキュメント

たとえばLinuxMint17.3にプリインストールされていたのは以下のバージョンである。

さらに執筆時点で最新の以下バージョンも使いたくなったとする。

異なるバージョンをいくつも共存させつつ、pythonコマンドが示すPythonを指定したい。

Pythonエンジンの仮想化

各バージョンのPythonを異なるディレクトリにインストールし、pythonコマンドが指し示すPythonを変更する。これで複数バージョンの共存と利用ができる。

pyenv

pyenvPythonエンジン仮想化ツールである。

Pythonコンパイルに必要なもの

$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

pyenvはPythonソースコードをダウンロードしてコンパイルする。それに必要なパッケージを予めインストールしておく必要がある。さもないとPythonの環境構築について調べてpyenvで3.6.1をインストールした)ときのようにダウンロード&コンパイルエラーをくりかえすことになる。

pyenvインストール

PyenvによるPython3.x環境構築(CentOS, Ubuntu) - Qiita

インストールしたいディレクトリに移動して以下コマンドを実行する。

$ sudo git clone git://github.com/yyuu/pyenv.git

pyenvの初期化

~/.bash_profileファイルに初期設定スクリプトを書く。

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

上記スクリプトをターミナル起動するたびに実行する。以下のコマンドで。

$ bash -l

もしくは以下。

$ source ~/.bash_profile

pyenvコマンド

コマンド 説明
pyenv install 3.6.1 インストール
pyenv uninstall 3.6.1 アンインストール
pyenv global 3.6.1 バージョン指定
pyenv versions 全バージョン表示
pyenv version 現在バージョン表示

パッケージ管理ツール

パッケージ入手ツール

pipを使う。pipは第三者が作成したライブラリを入手するためのツール。

pyenvでPythonをインストールし指定すると、pipコマンドもそのバージョンのものになる。昔はeasy_installという名前のツールを使っていたらしい。

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

パッケージ作成ツール

setuptoolsを使うらしい。

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

パッケージ仮想環境構築ツール

複数パッケージの組合せを個別ディレクトリに保存するもの。

Pythonのバージョンごとに使えるものが違う。複雑すぎて把握できていない。

py Ver パッケージ仮想化ツール
3.6〜 venv
3.〜3.5 pyvenv, virtualenv, virtualenvwapper, pyenv-virtualenv
2.〜 virtualenv

まとめ

$ bash -l
$ pyenv install 3.6.1
$ pyenv global 3.6.1
$ python -V
$ pip install requests
$ pip list

所感

把握するだけでも難しい。使いこなすのはもっと難しい。