以前にdirenvとvirtualenvでpythonの開発環境を作る手順を書きました。
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 $