damyarou

python, GMT などのプログラム

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       
% 

これにて作業完了。

以 上