気づいたらpythonbrewをプチハックしていて月曜の明け方に突入した件
なんか雨振ってきましたね。y_echoです、こんばんは。
先日
なんてエントリを書いた訳ですが、pythonbrewについて個人的に気になったことを調べてみました。
perlbrewの--asオプション相当のものが欲しいかも
同じバージョンでConfigureが異なる環境を用意したいパワーユーザさんはいそうですね。
先日のエントリを書いた後、あらためて
のマニュアルを読んでみたのですが、やはりそのようなオプションは今のところありませんでした。
環境変数PYTHONBREW_ROOT「を」pythonbrewで管理して欲しいかも
少し試してみたのですが、pythonbrewを
% export PYTHONBREW_ROOT=~/python/pythonbrew % ./pythonbrew-install
のようにインストールした場合、自分でも.zshenvなどに
# .zshenv export PYTHONBREW_ROOT=~/python/pythonbrew
しておく必要がありそうです。
一方、perlbrewはinitコマンドにて自動作成される~/.perlbrew/init
export PERLBREW_ROOT=/Users/y_echo/perl5/perlbrew
にインストール時設定の環境変数が保存され、.zshrcなどに取り込む${PERLBREW_ROOT}/etc/bashrcで
if [[ -f $HOME/.perlbrew/init ]]; then source $HOME/.perlbrew/init fi
しているため、自前でexportする必要がありません。
...ちょっと待てよ、と
pythonbrewはperlbrewにインスパイアされたツールであり、ある程度同じことをやっているはずです。
なんで自前でやる必要があるんだーッ、とまたしてもカッとなりました。
まず、${PYTHONBREW_ROOT}/scripts/pythonbrew/define.pyのこの部分
import os VERSION = "0.6.7" if os.environ.has_key("PYTHONBREW_ROOT"): ROOT = os.environ["PYTHONBREW_ROOT"] else: ROOT = os.path.join(os.environ["HOME"],".pythonbrew")
で環境変数PYTHONBREW_ROOTがスクリプト全体に効いてきます。
また、perlbrew同様に.zshrcなどに取り込むための${PYTHONBREW_ROOT}/etc/bashrc
PATH_ROOT="/Users/y_echo/python/pythonbrew" PATH_ETC="$PATH_ROOT/etc" #... __pythonbrew_set_current_path() { if [[ -s "$PATH_ETC/current" ]] ; then source "$PATH_ETC/current" else __pythonbrew_set_default fi __pythonbrew_set_path } #... # main __pythonbrew_set_current_path
には、確かにインストール時設定の環境変数が反映されていますし、
# $PATH_ETC/current PATH_PYTHONBREW="/Users/y_echo/python/pythonbrew/bin"
に関してもそうです。
...で、結局何が悪そうか
個人的な結論ですが、PYTHONBREW_ROOTをexportし忘れているのではないかと。
もちろん、どこかでexportするつもりで実装していたのに、という意味です。patchるとしたら、$PATH_ETC/currentにpythonbrewインストール時のPYTHONBREW_ROOTを吐くだけなら影響範囲小さそうですね(勘)。
ダメもとで書いて送ってみようかな...