以前に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 $