#contents

** Pythonを使ってみよう [#peb4c9dd]

- 概要
-- シンプルで習得がしやすいオブジェクト指向言語
-- データ解析、機械学習

- 公式サイト
-- https://www.python.org/

- 環境
-- Vagrant ローカル開発環境 (CentOS 6.7)

** Python 3 インストール [#j4dacc82]

- CentOS 6 標準では Python 2 がインストールされているため pyenv を利用して Python 3 をインストール

- epel リポジトリをダウンロード

 $ wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

- epel リポジトリをインストール

 $ sudo rpm -Uvh epel-release-6-8.noarch.rpm

- Ansible インストール

 $ sudo yum -y install ansible
 $ ansible --version
 ansible 2.3.0.0

- git, patch をインストール

 $ sudo yum -y install git
 $ sudo yum install patch

- Playbook 作成

 $ vi playbook.yml

 ---
 - hosts: localhost
   connection: local
   sudo: yes
   vars:
     - python_version: 3.5.2
   tasks:
     - name: disable iptables
       service: name=iptables state=stopped enabled=no
     - name: install libselinux-python
       yum: name=libselinux-python state=latest
     - name: remove localtime
       file: path=/etc/localtime state=absent
     - name: change timezone
       file: src=/usr/share/zoneinfo/Asia/Tokyo dest=/etc/localtime state=link force=yes mode=0644
     - name: change locale
       lineinfile: >-
         dest=/etc/sysconfig/i18n
         state=present
         regexp=^LANG=
         line='LANG="ja_JP.UTF-8"'
 
     - name: install dependencies
       yum: name={{item}} state=present
       with_items:
         - gcc
         - openssl
         - openssl-devel
         - rpm-build
         - gcc-c++
         - bzip2
         - bzip2-devel
         - libtool
         - zlib
         - zlib-devel
         - httpd-devel
         - openssl-devel
         - curl-devel
         - ncurses-devel
         - gdbm-devel
         - readline
         - readline-devel
         - sqlite
         - sqlite-devel
         - libyaml-devel
         - libffi-devel
         - bison
 
     - name: check pyenv installed
       command: test -x /home/vagrant/.pyenv
       register: pyenv_present
       ignore_errors: yes
       become: no
     - name: git clone pyenv
       git: repo=https://github.com/yyuu/pyenv.git dest=/home/vagrant/.pyenv
       when: pyenv_present.rc != 0
       become: no
 
     - name: check pyvirtual installed
       command: test -x /home/vagrant/.pyenv/plugins/pyenv-virtualenv
       register: pyvirtual_present
       ignore_errors: yes
       become: no
     - name: git clone pyenv-virtual
       git: repo=https://github.com/yyuu/pyenv-virtualenv.git dest=/home/vagrant/.pyenv/plugins/pyenv-virtualenv
       when: pyvirtual_present != 0
       become: no
 
     - name: update pyenv
       command: git pull --rebase chdir=/home/vagrant/.pyenv
       become: no
     - name: update pyenv-virtualenv
       command: git pull --rebase chdir=/home/vagrant/.pyenv/plugins/pyenv-virtualenv
       become: no
 
     - name: check python installed
       shell: /bin/bash -lc "pyenv versions | grep {{python_version}}"
       register: python_installed
       ignore_errors: yes
       become: no
     - name: install python
       shell: /bin/bash -lc "pyenv install {{python_version}} && pyenv rehash && pyenv global {{python_version}}"
       when: python_installed.rc != 0
       become: no
 
$ ansible-playbook playbook.yml

-  &color(red){※}; エラーとなるため下記を手動で実施 (to be automated)

 $ vi .bashrc

 export PYENV_ROOT="${HOME}/.pyenv"
 if [ -d "${PYENV_ROOT}" ]; then
     export PATH=${PYENV_ROOT}/bin:$PATH
     eval "$(pyenv init -)"
 fi

 $ source ~/.bashrc

- Playbook 実行

 $ ansible-playbook playbook.yml

- Python バージョン確認

 $ python -V
 Python 3.5.2

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS