pyenvの落とし穴?
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 ...