Pythonインストール
標準・公式
MacやLinuxならシステムの一部として
/usr/bin/python
が既にインストールされているので、
何もしなくても使えっちゃ使える。
でも大概そこに入ってるのは古い2.7とかなので、
ちゃんと使える3.xを使いたければ
python.jp/環境構築ガイド
に従って最新版を入れるのが簡単。
pyenv
管理者権限なしでホーム以下にインストールするには pyenv が便利。
-
Homebrew か Git を使ってpyenvをインストール:
brew install pyenv # or git clone https://github.com/pyenv/pyenv.git ~/.pyenv mkdir -p ~/.pyenv/cache
-
Pythonのインストール先を決める環境変数
PYENV_ROOT
を公式推奨の~/.pyenv
に設定し、 ついでにPATHも追加しておく。 シェルの設定ファイル (e.g.,~/.bashrc
) に次のように追記:export PYENV_ROOT=${HOME}/.pyenv if [ -d $PYENV_ROOT ]; then pyenv_versions=($(ls ${PYENV_ROOT}/versions | sort -V)) export PYENV_LATEST=${PYENV_ROOT}/versions/${pyenv_versions[@]: -1} PATH=${PYENV_LATEST}/bin:$PATH unset pyenv_versions fi
pyenv shell
やpyenv local
を使ってPythonのバージョンを頻繁に切り替える場合は、 公式の説明どおりにeval "$(pyenv init --path)"
やeval "$(pyenv init -)"
を設定してshimsを使う方法のほうがいいかもしれないけど、 そうでなければこのようにPATHだけ設定するほうが単純で、 起動時間も短くなる。 -
シェルを再起動して設定を反映し、 目当てのバージョンを探してインストール:
exec $SHELL -l pyenv install -l | less pyenv install 3.10.4 exec $SHELL -l
R から
reticulate
越しに呼ぶ場合は共有ライブラリを有効にしてビルドする:env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.13 # or Rscript -e 'reticulate::install_python("3.7.13")'
-
pip のパスを確認し、パッケージを入れる:
which pip3 pip3 install -U setuptools pip wheel pip3 install -r /path/to/requirements.txt
よく使うパッケージは
requirements.txt
の形でまとめておくと楽。
既知の問題
https://github.com/pyenv/pyenv/wiki/Common-build-problems
-
3.1.0より古いmatplotlib で
macosx
backend を使いたい場合などは環境変数PYTHON_CONFIGURE_OPTS="--enable-framework"
をセットしてFramework型でビルドする。 -
Mojaveで “zlib not available” と怒られる問題は
CFLAGS="-I$(xcrun --show-sdk-path)/usr/include"
を定義して回避。 -
PEP 394 になるべく沿うように、
python
では/usr/bin/python
が呼び出される状態を維持しつつ、python3
,pip3
を明示的に使うようにしたい。 が、いまのところできない?
Anaconda
Scientificな用途で使いたい場合は Numpy/Scipy などの主要パッケージもまとめて面倒みてくれる Anaconda を使うという選択肢もある。 私は使わない。 GUIのインストーラでもいいし、Homebrewでも入れられる:
brew install anaconda
export PATH=/usr/local/anaconda3/bin:"$PATH"
ただしPATH
上でシステムコマンドを上書きしちゃうヤンチャな面もあるので、
それが気になる人はpyenv越しに入れることで汚染をある程度防げる。
全部入りに抵抗がある場合は
pyenv install miniconda3-latest
から小さくスタートすることも可能。
パッケージ管理では pip
の代わりに非公式の conda
を使うことになる。
環境変数
https://docs.python.org/3/using/cmdline.html#environment-variables
シェルの設定ファイル(~/.zshrc
とか)で export
しておく。
一時的に無効したいときは python -E
で起動。
PYTHONPATH
import
の探索パス (sys.path
) の先頭付近に場所を追加できる。
例えば自分で書いたモジュールやパッケージの置き場所を指定しておけば、
いつでも優先的に import
できるようになる。
PYTHONUSERBASE
pip install
や setup.py install
における
--user
オプションの目的地を指定できる。
デフォルトでは ${HOME}/.local
。
MacのFramework buildでは ${HOME}/Library/Python/2.7
とかになる。
現在の設定は
site
の USER_BASE
で確認できる (python -m site
)。
USER_SITE
はその下の {BASE}/lib/python*.*/site-packages
に配置され、
sys.path
に含まれる。
除外したいときは PYTHONNOUSERSITE
をセットするか python -s
で起動。
PYTHONSTARTUP
インタラクティブモードで起動するときに読み込むファイルを指定できる。