A Way of Code

興味の赴くままに書き綴っていきます。

pythonbrewのコマンドとオプション一覧

pythonbrewからPythonをビルドしたときのconfigureオプションを調べていたら、網羅的にpythonbrewのオプションがみたくなって、いつの間にかpythonbrewのコマンドとオプションをまとめていました。
`pythonbrew help [COMMAND]`で確認できる内容がほとんどですが、自分用なので後悔はしていない。

対象

  • pythonbrew 1.1
  • Mac OS X (installコマンドの一部)

コマンド一欄

コマンド 説明
install 指定したバージョンのPythonをインストールする
uninstall 指定したバージョンのPythonをアンインストールする
cleanup ビルド時のファイルやPythonのtarボール等、不要になったファイルを削除する
switch 使用するPythonのバージョンを切り替える
use 現在のターミナルセッションに対して使用するPythonのバージョンを切り替る
off pythonbrewを無効にする
symlink 各バージョンのPythonに対するシンボリックリンクを作成する
py 指定したPythonファイルを、特定もしくは全てのPythonで実行する
update pythonbrew本体を更新する
version pythonbrew本体のバージョンを表示する
help 各コマンドのヘルプを表示する
buildout pythonbrew経由でbuildoutを実行する
venv 仮想環境の作成・削除・切り替え等を行う(サブコマンドあり)

install

指定したバージョンのPythonをインストールする。
※Mac固有と思わしき箇所は、緑色で記載しています。

使い方

$ pythonbrew install [OPTIONS] VERSION

installコマンドでデフォルトで指定されるconfigureオプション

  • MACOSX_DEPLOYMENT_TARGET=Mac OS Xのバージョン
  • ーーenable-shared

configureオプションが気になるかたは、Pythonのtarボールを展開して./configure --helpと./Mac/READMEをみると参考になるかと思います。
なお、AppleGCCではデフォルトで-fPIC等を付けるので、configureのオプションパラメータを調整するときはそのあたりも考慮するとよいでしょう。

installコマンドのオプション

オプション 短縮形 内容
--force -f make testに失敗してもインストールを続行する
--no-test -n make testをスキップする
--verbose -v 詳細情報を出力する
--configure -C ./configureのオプションを指定する
--no-setuptools setuptoolsをインストールしない
--as インストールするPythonの識別名をバージョン番号ではなく任意の名前にする
--jobs -j ビルドを並行処理させる
--framework 配置構成をMacOSXのFramework仕様にする
--universal 32bit と 64bitでビルドする
--static 共有ライブラリではなく、スタティックライブラリを作成する
--force

make testに失敗してもインストールを続行する

--no-test

make testをスキップする

--verbose

詳細情報を出力する

--configure

./configureのオプションを指定する
例:

$ pythonbrew install --configure="CC=/usr/bin/gcc-4.2" 2.7.2

configureに渡されるパラメータ:
指定された値がそのまま渡される。

./configure CC=/usr/bin/gcc-4.2
--no-setuptools

setuptoolsをインストールしない

--as

インストールするPythonの識別名をバージョン番号ではなく任意の名前にする
例:

$ pythonbrew install --as="hoge" 2.7.2 => ~/.pythonbrew/pythons/Python-hoge/
$ pythonbrew switch hoge
--jobs

ビルドを並行処理させる。makeのパラメータに渡される
例:

$ pythonbrew install -j2 2.7.2
--framework

配置構成をMacOSXのFramework仕様にする
configureに渡されるパラメータ:

--enable-framework=~/.pythonbrew/pythons/Python-xxx/Frameworks
--universal

32bit と 64bitでビルドする。ただし、対象のPythonバージョンによっては64bitコンパイルできないものもある
configureに渡されるパラメータ:

--enable-universal-sdk=/
--with-universal-archs=intel

※--enable-universal-sdkはMac固有のパラメータ。

--static

共有ライブラリではなく、スタティックライブラリを作成する。--enable-sharedオプションが指定されなくなる。--frameworkオプションとの併用はできない。

uninstall

指定したバージョンのPythonをアンインストールする。
指定したバージョンに紐付く、venvコマンドで作成した仮想環境も同時に削除される。

使い方

$ pythonbrew uninstall VERSION

cleanup

ビルド時のファイルやPythonのtarボール等、不要になったファイルを削除する。

使い方

$ pythonbrew cleanup

switch

使用するPythonのバージョンを切り替える。ターミナルのセッションをまたいで有効になる。

使い方

$ pythonbrew switch VERSION

use

現在のターミナルセッションに対して、使用するPythonのバージョンを切り替る。

使い方

$ pythonbrew use VERSION

off

pythonbrewを無効にする。
再びpythonbrewを有効にする場合は、switchコマンドを使用する。

使い方

$ pythonbrew off
$ which python
/usr/bin/python
$ pythonbrew switch 2.7.2
Switched to Python-2.7.2
$ which python
/Users/foo/.pythonbrew/pythons/Python-2.7.2/bin/python

symlink

各バージョンのPythonに対するシンボリックリンクを作成する。

使い方

$ pythonbrew symlink [OPTIONS]

symlinkコマンドのオプション

オプション 短縮形 内容
--python=VERSION -p VERSION 指定したバージョンのシンボリックリンクを貼る
--remove -r シンボリックリンクを削除する
--default=DEFAULT -d DEFAULT 指定したバージョンに対して"py"というデフォルト名でシンボリックリンクを貼る
--venv=VENV -v VENV 指定した仮想環境に対してシンボリックリンクを貼る?(試したら動かなかった)

py

指定したPythonファイルを、特定もしくは全てのPythonで実行する。

使い方

$ pythonbrew py PYTHON_FILE

pyコマンドのオプション

オプション 短縮形 内容
--python=VERSION -p VERSION 指定したバージョンでPythonを実行する
--verbose -v 各バージョンのPythonを実行するとき、そのPythonのバージョンを表示する

使用例

# 全てのバージョンのPythonで実行する
$ pythonbrew py foo.py
# 指定したバージョンのPythonで実行する
$ pythonbrew py -p 2.7.2 -p 2.5.6 foo.py

update

pythonbrew本体を更新する。

使い方

$ pythonbrew update

version

pythonbrew本体のバージョンを表示する。

使い方

$ pythonbrew version

help

各コマンドのヘルプを表示する。

使い方

$ pythonbrew help [COMMAND]

buildout

buildoutを実行する。buildout.cfgが格納された位置で実行する。

使い方

$ pythonbrew buildout

venv

仮想環境の作成・削除・切り替え等を行う。

使い方

$ pythonbrew venv [OPTIONS] [SUB_COMMAND] [VIRTUAL_ENV_NAME]

venvコマンドのサブコマンド

create

仮想環境を作成する。
環境変数VIRTUALENV_USE_DISTRIBUTE=trueと設定しておくと、仮想環境ではsetuptoolsではなくdistributeがセットアップされる。
例:

# switchで有効にしたバージョンのPythonをベースに、仮想環境py27を作成する
$ pythonbrew venv create py27
# 2.5.6のバージョンをベースに、仮想環境py25を作成する
$ pythonbrew venv create -p 2.5.6 py25
# 2.7.2環境のsite-packageから独立した仮想環境py27_independentを作成する
$ pythonbrew venv create -p 2.7.2 --no-site-package py27_independent
# distribute付きの仮想環境py27_distributeを作成する
$ VIRTUALENV_USE_DISTRIBUTE=true pythonbrew venv create py27_distribute
delete

指定した仮想環境を削除する。
例:

# 実環境2.7.2ベースの仮想環境py27, py27_independent py27_distributeをまとめて削除する
$ pythonbrew venv delete py27 py27_independent py27_distribute
# 実環境2.5.6ベースの仮想環境py25を削除する
$ pythonbrew venv delete -p 2.5.6 py25
use

指定した仮想環境を使用する。
仮想環境を終了するには`deactivate`コマンドを実行する。
例:

# 2.5.6ベースの仮想環境py25を使う
$ pythonbrew venv use -p 2.5.6 py25
# py25仮想環境を終了する
$ deactivate
# 2.7.2ベースの仮想環境py27を使う
$ pythonbrew venv use py27
# py27仮想環境を終了する
$ deactivate
list

仮想環境のリストを表示する。
例:

$ pythonbrew list -a

サブコマンドのオプション

サブコマンド オプション 短縮形 内容
create, delete, use, list --python=VERSION -p VERSION 指定したバージョンでvenvサブコマンドを実行する
list --all -a 全ての仮想環境の一覧を表示する
create --no-site-package -n 仮想環境から、実環境のsite-packageを参照しない。