アサトの実験blog

Pythonでの自動化とか、IT関連で興味のあるテーマについて色々実験する場所です

CentOS7 + Python 開発環境構築

CentOS7 + Python 開発環境構築

vagrantで既存のcentos環境を複製した後に、python2, python3 が共存できる環境を pyenvコマンドで構築する手順のメモ Courseraの課題は、一旦は別Windowsに python2の環境構築して乗り切ったのですが、いつも学習・開発に使っている環境でやりたい(そうしないと色々不便でたまらない)ので、そちらの vagrant環境に構築することにしました。

1.既存のVagrant環境からの複製

>d:
>cd \vagrant
>mkdir python-env
>cd python-env
>copy ..\centos75\Vagrantfile .    ←既存のcentos75環境からVagrantfileをコピー

2. vagrant 環境起動

>vagrant up

まあここまでは自分用のメモ。 Vagrantしばらく使ってないとわすれることがあるので。

3. centos環境にログイン後、git インストール

$ sudo yum -y install git

4. pyenvのインストール。環境設定

$ sudo yum -y install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel bzip2 sqlite
 zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ 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

最初の行の依存ライブラリのインストールが大事。これやってないとpyenv動かなくってはまります。 私も最初少しはまった後ググって以下の記事を見つけました。ありがとうございます。

qiita.com

で、

$ pyenv install --list 

とすると、インストールできる pythonのバージョンリストが表示されるので、

2系として、2.7.15 3系として、3.6.5

をインストールします。

$ pyenv install 2.7.15
Downloading Python-2.7.15.tar.xz...
-> https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz
Installing Python-2.7.15...
Installed Python-2.7.15 to /home/vagrant/.pyenv/versions/2.7.15

続いて、python 3.6.5

$ pyenv install 3.6.5
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
Installed Python-3.6.5 to /home/vagrant/.pyenv/versions/3.6.5

以上で、Python 2.7.15, 3.6.5 の両環境が使える環境ができました。

5.Coursera Machine Learning用環境の作成

前回、すでにPython3.6環境を素で入れていたWindows環境に入れようとしてはまりまくった CourseraのMachine Learningで使っている  GraphLab Create, IPython Notebookの環境を作ります。 Python2 系を使っているようなので、

5.1 pyenvでpython 2.7.15 環境を使う

$ pyenv global 2.7.15 

として、2.7.15 を使うようにします。

5.2 pipenvのインストール、pipenvで仮想環境利用

私がherokuを利用する時に使っていて便利だと思っている pipenv コマンドで仮想環境を利用します。

$ pip install pipenv
$ mkdir coursera
$ cd coursera
$ pipenv shell

5.3 Coursera Machine Learning 学習環境の構築

そして、前回Windowsに直接インストーラで入れようとしてはまりまくったGraphLab Createの環境構築。

your registered email, your product key here の所には、それぞれ

https://turi.com/learn/coursera/

で登録して届いた e-mailからの値を入れて実行します。↓

$ pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/your registered email address here/your product key here/GraphLab-Create-License.tar.gz

すんなりインストール成功。いろんなオンライン学習利用するには、pyenvで環境作っておいた方がよさそうですね。 後は、サーバ上に環境を構築したので、起動時には外部から接続できるように --ip= のオプションを指定して IPython notebookを起動します。

$ ipython notebook --ip=0.0.0.0

5.4 IPython notebook に接続。

ブラウザから、起動した IPython notebookに接続します。私の環境では、192.168.0.24 が vagrantで動いているサーバのIPアドレスなので

http://192.168.0.24:8888

で接続。

f:id:asato418:20180930180950p:plain

無事接続に成功しました。これで Courseraの学習がこの環境でできそうです。

ちなみに、IPython(Jupyter)notebookで ipynb 形式で手順書とかを作って githubに入れておくとそのままノートブックの手順が見られるので便利ですね。。

github.com

ちなみに、以下は Coursera の 機械学習の第2週、家の価格の予想関連の Notebook(授業部分)です。これに加えて、自分で計算した値とかを答えるという課題が2週の宿題でした。

github.com

時間があれば、学んだこととか、課題の回答とかあたりも記事としてあげようと思います。