今回は AmazonLinux の Vagrant環境で、python3.6 を利用してみたいと思います。
Amazon Linuxではデフォルトで python2.7 がインストールされています。
Lambdaなどでは python2.7 と python3.6 がサポートされていますが、特に何もなければ3.6を利用したいところです。
そこで、pyenv を使って、バージョンの切り替えができる仮想環境の作成をしてみます。
尚、今回はVagrantの環境を使ったAmzon Linuxでの構築になります。
インストールに必要なパッケージの導入
まず、環境構築に必要なパッケージを一括導入します。
1 2 3 |
$ sudo yum -y install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel |
virtualenvの環境構築
次にvirtualenvのインストールを行います。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo easy_install virtualenv Searching for virtualenv Best match: virtualenv 12.0.7 Adding virtualenv 12.0.7 to easy-install.pth file Installing virtualenv script to /usr/local/bin Installing virtualenv-2.7 script to /usr/local/bin Using /usr/lib/python2.7/dist-packages Processing dependencies for virtualenv Finished processing dependencies for virtualenv |
こちらで仮想環境を作ると python2.7 での環境が構築されます。
今回は python3.6 での仮想環境を作りたいのでpyenvをインストールして行きます。
pyenvのインストール
以下の手順でインストールを行います。
1 2 3 4 5 6 |
$ sudo git clone https://github.com/yyuu/pyenv.git /usr/bin/.pyenv $ sudo mkdir /usr/bin/.pyenv/shims $ sudo mkdir /usr/bin/.pyenv/versions $ sudo chown -R vagrant:vagrant /usr/bin/.pyenv |
最後に vagrant での権限設定をしていますが、こちらを入れないと、この後に書き込みエラーが起こります。
vagrant環境でない場合は、適したユーザーでの設定となります。
次に環境変数の設定を行います。
1 2 3 4 5 6 7 8 9 10 |
$ vi ~/.bashrc -----------------------------追加 export PYENV_ROOT="/usr/bin/.pyenv" export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" ----------------------------- $ source ~/.bashrc |
これで pyenv を利用する準備は整いました。
インストール可能な python のバージョンを確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ pyenv install --list Available versions: 2.1.3 〜 中略 〜 2.7.13 2.7.14 2.7.15 〜 中略 〜 3.6.5 3.6.6 3.7.0 3.7-dev 3.8-dev 〜 中略 〜 stackless-3.5.4 |
次に pyenv で python3.6 のインストールを行います。
1 2 3 4 5 6 7 |
$ pyenv install 3.6.6 Downloading Python-3.6.6.tar.xz... -> https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz Installing Python-3.6.6... Installed Python-3.6.6 to /usr/bin/.pyenv/versions/3.6.6 |
インストールだけではバージョンは変わらないので確認です。
1 2 3 4 |
$ python -V Python 2.7.12 |
次に利用するバージョンの切り替えを行います。
1 2 3 4 5 |
$ pyenv global 3.6.6 $ python -V Python 3.6.6 |
こちらで無事に python3.6 が利用可能になりました。
pyenv-virtualenvの追加
さて、その python を仮想環境で利用できるようにするために以下の設定を行います。
1 2 3 |
$ git clone https://github.com/yyuu/pyenv-virtualenv.git /usr/bin/.pyenv/plugins/pyenv-virtualenv |
プラグインを入れたので環境変数の読み込みをします。
1 2 3 4 5 6 7 8 |
$ vi ~/.bashrc -----------------------------追加 eval "$(pyenv virtualenv-init -)" ----------------------------- $ source ~/.bashrc |
こちらで無事に仮想環境での pytnon3.6 の利用が可能になりました。
以下で python3.6 の環境構築を行います。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ pyenv virtualenv 3.6.6 python3.6 Looking in links: /tmp/tmpswgnno6n Requirement already satisfied: setuptools in /usr/bin/.pyenv/versions/3.6.6/envs/python3.6/lib/python3.6/site-packages (39.0.1) Requirement already satisfied: pip in /usr/bin/.pyenv/versions/3.6.6/envs/python3.6/lib/python3.6/site-packages (10.0.1) $ pyenv versions system * 3.6.6 (set by /usr/bin/.pyenv/version) 3.6.6/envs/python3.6 python3.6 |
ここまでで無事仮想環境で python3.6 を利用する準備が整いました。
パッケージのインストール
最後に仮想環境でパッケージのインストールをしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ mkdir sampleFanction $ cd sampleFanction $ pyenv local python3.6 (python3.6)$ pip install pandas -t . (python3.6)$ tree -L 1 . ├── __pycache__ ├── bin ├── dateutil ├── numpy ├── numpy-1.15.1.dist-info ├── pandas ├── pandas-0.23.4.dist-info ├── python_dateutil-2.7.3.dist-info ├── pytz ├── pytz-2018.5.dist-info ├── six-1.11.0.dist-info └── six.py 11 directories, 1 file |
上記で無事、パッケージがインストールされました。
(2.7系だと pip で pandas のフォルダはできないので)
尚、フォルダに仮想環境が適用されているので、仮想環境から抜けるには上の階層のフォルダなどに移動します。
1 2 3 4 |
(python3.6)$ cd .. $ |
あくまで開発の準備段階ですが、環境構築が実施できました。
このブログは株式会社CoLabMixによる技術ブログです。
GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。
Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。
開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。