LoginSignup
11
11

More than 5 years have passed since last update.

Python3.4 インストールメモ

Last updated at Posted at 2014-04-19

いくつかの前提が満たされたため、メインの環境をPython3.4に切りかえることとした。以下、メモ書き程度。

インストール

今までは、homebrewでインストール -> virtualenv作成としていたのだが、今回は自前でビルドすることとした。
python31, python32という感じのマイナーバージョンを指定してインストールするformulaがなくなっており、既存のメイン環境であるPython3.3をアップデートで消してしまうのではないか、という恐れがあったため。(実際にどうかは未確認)

% brew search python3
python3

ソースはgithubからcloneする. https://github.com/python/cpython

% git clone https://github.com/python/cpython
% cd cpython

configureでインストールディレクトリを指定する。デフォルト(/usr/local)のままでも良いが、その場合はmake installではなくmake altinstallとして、既存のシンボリックリンクを上書きしないようにする。
(ref.) https://github.com/python/cpython/blob/master/README

Python3.4.0のインストール
% ./configure --prefix=~/python/python34/3.4.0
% make
% make install
% ls ~/python/python34/3.4.0/bin/
2to3  2to3-3.4  easy_install-3.4  idle3  idle3.4  pip3  pip3.4  pydoc3  pydoc3.4  python3  python3-config  python3.4  python3.4-config  python3.4m  python3.4m-config  pyvenv  pyvenv-3.4

仮想環境の構築

自身の環境ではシステムデフォルトのPython(2.7.5)は変更せずに、各バージョン用の仮想環境を構築している。
仮想環境を作成するにはvirtualenvを使用するのが一般的だが、Python3.4から標準ライブラリのpyvenvを使用するという選択肢ができた。
https://docs.python.org/3.4/using/scripts.html#scripts-pyvenv

軽くしか試していないので断言できないが、virtualenvを置きかえるだけ、ならば問題なさそう。
ただし、virtualenvにはvirtualenvwrapperという素晴しいユーティリティがあるため、ここが何らかの方法で解決されない限りはpyvenvの移行はしないつもり。(自分で実装しろやゴルァ、って指摘はあるけど…)
とはいえ、仮想環境構築が標準ライブラリで出来るようになった意義はデカいと思う。今後に期待。

virtualenv(wrapper)での仮想環境構築
% mkvirtualenv -p ~/python/python34/3.4.0/bin/python3.4 py3.4.0
…
(py3.4.0)% python
Python 3.4.0+ (default, Apr 19 2014, 14:38:58)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

このメイン環境は可能な限りクリーンにしておくが、iPythonだけはいれておく。無いとだらっと何かを確かめたい時に不便なので。
virtualevnwrapperは仮想環境作成時のフックをサポートしているため、それを利用する。
仮想環境作成後の動作は、postmkvirtualenvファイルにより定義できるため、ここにipythonをインストールする処理を書く。

postmkvirtualenv
#!/bin/zsh
# This hook is run after a new virtualenv is activated.

pip install ipython

(ref.) http://virtualenvwrapper.readthedocs.org/en/latest/scripts.html

あとhttpieも何かと便利なので入れておいた。

(py3.4.0)% pip install httpie

デフォルトでPython3.4の仮想環境を使用する

現状だと、端末を立ち上げる度に以下のコマンドを入力して作成した仮想環境の使用を明示しなければならない。

# workonはvirtualenvwrapperが提供する
% workon py3.4.0
(py3.4.0)%

これは不便なので、ログイン時にworkonするようにしておく。以下はzsh使用前提。

~/.zlogin
% cat ~/.zlogin
# 仮想環境の名前には規則性を持たせる。(py + (version))
# デフォルトバージョンは別途ファイルで管理
if [ -f ~/.venv/.defaultver ];then
    DEFAULT_VER=`cat ~/.venv/.defaultver`
    workon py${DEFAULT_VER}
fi

% cat ~/.venv/.defaultver
3.4.0

(ref.) http://qiita.com/yuku_t/items/40bcc63bb8ad94f083f1

* 現状、.zshrcでvirtualenvwrapperの読み込みを行っているため、.zloginにworkon処理を書いているが、読み込みもあわせて.zprofileに書いた方がいいかも。

プロジェクト毎に仮想環境を切る

普段は上記の仮想環境を使用するが、前述の通りメイン環境はクリーンにしておきたいので、ここから更にプロジェクト毎に仮想環境を作成する。
デフォルトでPython3.4.0を使用するよう設定しているため、指定するインタープリタがどこに入っているかを意識することは基本的にない(=`which python`で指定できる)

(py3.4.0)% mkvirtualenv -p `which python` new_project
11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11