Python バージョンを入れ替える(Mac)
2020年4月27日、Pythonは3.8.1を入れていたが、3.8.2にしてみた。 Pythonと関連ライブラリのインストールはpyenvとpipのみで行っている。
目的はPythonのバージョンを変えるだけなので、.zshrcに記載しているパスや、Jupyterの設定は変更しない。もちろんこれらのファイルはいじらない。
関連事項として以下を参照。
パスの設定:.zshrc
PROMPT="%# " export PYENV_ROOT=${HOME}/.pyenv export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" alias brew="env PATH=${PATH/\/Users\/${USER}\/\.pyenv\/shims:?/} brew"
ファインダーに隠しファイルを表示するスクリプト:a_dota.sh
defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder
ファインダーで隠しファイルを非表示にするスクリプト:a_dotk.sh
defaults write com.apple.finder AppleShowAllFiles FALSE killall Finder
以下に手順を示す。
まずは、.pyenv
を含む隠しファイルをファインダーに表示する。
% sh a_dota.sh
% brew uninstall pyenv Uninstalling /usr/local/Cellar/pyenv/1.2.18... (695 files, 2.5MB)
上記操作により、homebrew で pyenv を削除後、ディレクトリ.pyenv
をファインダーで削除。
homebrew で pyenv を再インストール。
以下の画面では、homebrew をアップデート後、pyenv
をインストールしている。
% brew install pyenv Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (homebrew/core and homebrew/cask). ==> New Formulae autodiff hcxtools libcpuid ==> Updated Formulae ammonite-repl fastlane nushell azcopy fetchmail open-mesh (途中省略) fantastical qiyimedia ==> Deleted Casks go2shell wineskin-winery ==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.18.catalina.bottl Already downloaded: /Users/kk/Library/Caches/Homebrew/downloads/cd594a21b931d84b2c968913ea285837c751aa1c0db7d47a935f60c49794d6cd--pyenv-1.2.18.catalina.bottle.tar.gz ==> Pouring pyenv-1.2.18.catalina.bottle.tar.gz 🍺 /usr/local/Cellar/pyenv/1.2.18: 695 files, 2.5MB
pyenv
のインストールが無事完了。
欲しいPythonのバージョンを確認。
% pyenv install -l Available versions: 2.1.3 2.2.3 (途中省略) 3.7.7 3.8.0 3.8-dev 3.8.1 3.8.2 # <= これが欲しい! 3.9.0a5 3.9-dev activepython-2.7.14 activepython-3.5.4 activepython-3.6.0 anaconda-1.4.0 anaconda-1.5.0 (途中省略) stackless-3.4.7 stackless-3.5.4
Python 3.8.2 をインストール。
% pyenv install 3.8.2 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.8.2.tar.xz... -> https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz Installing Python-3.8.2... python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.8.2 to /Users/kk/.pyenv/versions/3.8.2
% which python /Users/kk/.pyenv/shims/python
Pythonは.pyenvの下にあるのだが、呼び出そうとするとシステムのPythonが呼び出される。
% python3 Python 3.7.7 (default, Mar 10 2020, 15:43:33) [Clang 11.0.0 (clang-1100.0.33.17)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> quit()
pyenvのglobalで3.8.2を宣言。
% pyenv global 3.8.2
% python3 Python 3.8.2 (default, Apr 27 2020, 09:48:02) [Clang 11.0.0 (clang-1100.0.33.17)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> quit()
これでPythonを呼ぶと3.8.2が立ち上がるようになる。
% python3 Python 3.8.2 (default, Apr 27 2020, 09:48:02) [Clang 11.0.0 (clang-1100.0.33.17)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'numpy' >>> quit()
numpyをimportしてみるがもちろん入っていない。 以降はpipで欲しいライブラリを入れていく。
まずはpipのアップデート。
% which pip3 /Users/kk/.pyenv/shims/pip3 % pip3 install --upgrade pip Collecting pip Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl Installing collected packages: pip Found existing installation: pip 19.2.3 Uninstalling pip-19.2.3: Successfully uninstalled pip-19.2.3 Successfully installed pip-20.0.2
pip のアップデート完了後、自分が欲しいライブラリをインストール。私の場合、以下のもの。
pip3 install numpy # 数値計算用ライブラリ pip3 install scipy # 数値解析用ライブラリ pip3 install matplotlib # グラフ作成用ライブラリ pip3 install pandas # データ加工支援用ライブラリ pip3 install pillow # 画像処理用ライブラリ pip3 install openpyxl # エクセルデータ読み書き pip3 install xlrd # エクセルデータ読込用 pip3 install xlwt # エクセルデータ書込用 pip3 install scikit-learn # 機械学習ライブラリ pip3 install seaborn # グラフ作成ライブラリ pip3 install sympy # 記号計算用ライブラリ pip3 install jupyter # Jupyter
上記で入れたものを確認。依存関係にあるものは自動的にインストールされている模様。
% pip3 list Package Version ------------------ ------------ appnope 0.1.0 attrs 19.3.0 backcall 0.1.0 bleach 3.1.4 cycler 0.10.0 decorator 4.4.2 defusedxml 0.6.0 entrypoints 0.3 et-xmlfile 1.0.1 ipykernel 5.2.1 ipython 7.13.0 ipython-genutils 0.2.0 ipywidgets 7.5.1 jdcal 1.4.1 jedi 0.17.0 Jinja2 2.11.2 joblib 0.14.1 jsonschema 3.2.0 jupyter 1.0.0 jupyter-client 6.1.3 jupyter-console 6.1.0 jupyter-core 4.6.3 kiwisolver 1.2.0 MarkupSafe 1.1.1 matplotlib 3.2.1 mistune 0.8.4 mpmath 1.1.0 nbconvert 5.6.1 nbformat 5.0.6 notebook 6.0.3 numpy 1.18.3 openpyxl 3.0.3 pandas 1.0.3 pandocfilters 1.4.2 parso 0.7.0 pexpect 4.8.0 pickleshare 0.7.5 Pillow 7.1.2 pip 20.0.2 prometheus-client 0.7.1 prompt-toolkit 3.0.5 ptyprocess 0.6.0 Pygments 2.6.1 pyparsing 2.4.7 pyrsistent 0.16.0 python-dateutil 2.8.1 pytz 2019.3 pyzmq 19.0.0 qtconsole 4.7.3 QtPy 1.9.0 scikit-learn 0.22.2.post1 scipy 1.4.1 seaborn 0.10.1 Send2Trash 1.5.0 setuptools 41.2.0 six 1.14.0 sympy 1.5.1 terminado 0.8.3 testpath 0.4.4 tornado 6.0.4 traitlets 4.3.3 wcwidth 0.1.9 webencodings 0.5.1 widgetsnbextension 3.5.1 xlrd 1.2.0 xlwt 1.3.0 %
これにて作業完了。
以 上