ksaitoの日記

日々試したことの覚え書き

pythonの開発環境その2

以前にdirenvとvirtualenvでpythonの開発環境を作る手順を書きました。

ksaito11.hatenablog.com

pythonzを使うとpythonのバージョンも選択できるようになります。

前提パッケージ

ubuntu17.04に下記の前提パッケー時をインストールします。

$ apt-get install -y \
            build-essential \
            zlib1g-dev \
            libbz2-dev \
            libssl-dev \
            libreadline-dev \
            libncurses5-dev \
            libsqlite3-dev \
            libgdbm-dev \
            libdb-dev \
            libexpat-dev \
            libpcap-dev \
            liblzma-dev \
            libpcre3-dev \
            curl \
            python-pip \
            virtualenv

pythonzのインストー

pythonzのREADME.mdの手順をansibleのplaybookにしました。

$ cat python.yml
---
- name: python develop environment
  hosts: all
  tasks:
    - name: pythonzのインストール確認
      stat: path="{{ ansible_user_dir }}/.pythonz/etc/bashrc"
      register: stat
    - name: pythonzのインストール
      shell: curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
      when: not stat.stat.exists
    - name: pythonzの設定
      lineinfile:
        dest: "{{ ansible_user_dir }}/.bashrc"
        state: present
        line: "[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc"
$ ansible-playbook python.yml -c local

pythonのインストー

使いたいバージョンのpythonをインストールします。

$ pythonz install 3.5.0

direnvの設定

direnvの設定は、前回の記事を参照下さい。

direnvに使いたいバージョンを

$ direnv edit .
$ cat .envrc
layout python $(pythonz locate 3.5.0)
$

これで、使いたいバージョンのpythonを利用することが出来ます。

$ cd tmp
direnv: loading .envrc
direnv: export +VIRTUAL_ENV ~PATH
(0)18:31:05 ksaito@dind$ python --version
Python 3.5.0
$

pipのパッケージも環境毎に独立した物になります。

$ pip list --format=columns
Package       Version
------------- -------
appdirs       1.4.3
boto          2.46.1
packaging     16.8
pip           9.0.1
pkg-resources 0.0.0
setuptools    35.0.2
six           1.10.0
wheel         0.29.0
$