pyenvの落とし穴?

Share on:

Jupyter Bookを試す際、ついでにpyenvの使い勝手も確認してみようと試してたところいくつかトラブルに遭遇したので備忘録日記。

tcl-tk周りのモジュールが動作しない。

pyenv install doesn't work with homebrew installed tcl-tkということで、tcl-tk使うライブラリをそのままでは動かせない。身近な例ではmatplotlibがダメ。リンク先にあるように修正すると恐らくうまくいく(解決したという記事も見つかる)のだけど、これを1年次にやらせるのは避けたい。

pyenv global の動作が怪しい。

環境変数PYENV_ROOTとかを設定した後で、

1pyenv install 3.8.6
2pyenv global 3.8.6
3pip install jupyterlab

みたいな流れで用意したディレクトリにモジュールインストールしてくれるはずなんですが、何らかの拍子にこれ global での環境変更が上手く動作しない。globalした時点でpythonは指定したものになるけれど、pipが指定する前のPATHを参照したりする。それに気づかず ~/.pyenv/shims/pip 使ってるつもりで /usr/local/bin/pip とかが動いてたりする。いやいやそれダメじゃん。


このことを踏まえると1年次は、以下のような流れで構築&普段使うようにするのが良いのかな。インストール大会ではpython3インストールするところまでで良いか。

  • brewインストールして、
  • brewでPython 3.8系最新をインストール。
  • /usr/local/bin/python3にインストールされるはずなので、それを使って venv で環境構築。以下の例だと ~/python-env
  • 構築した環境をactivateする。
1brew install python@3.8
2/usr/local/bin/python3 -m venv ~/python-env
3source ~/python-env/bin/activate
4pip install ...
5python ...