ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

macOSにPython 3を入れる

macOSPython 3を入れるには色々方法があります。

まずはHomebrewとかMacPortsを使う方法。これはWeb検索すると一番よく出てくる方法だと思います。Qiitaとかで書かれているのはだいたい Homebrewを使う方法ですね。

で、ふたつめが公式のインストーラーを使う方法です。例えば以下からダウンロードするとか。

www.python.org

ただ、実はPython 3.6.5以降、macOS向けには二つのインストーラーが提供されるようになりました。

OS X 10.9以降の環境向けにTcl/Tk 8.6がバンドルされた64bit専用バージョンと、OS X 10.6以降の環境向けに提供された64bit/32bitハイブリットインストーラーです。OS X 10.6以降向けのバージョンは最近のmacOSでも動作しますが、このバージョンを動作させるにはTcl/Tk 8.5のインストールが別途必要です。というわけで多分OS X 10.9以降の環境向けの方をダウンロードした方がラクかと。

こちらからいずれのバージョンもダウンロードできます。

www.python.org

ちなみに公式のインストーラーでPython 3をインストールすると、次のような感じにパスが通りました。 pythonとpython2.7コマンドがmacOS標準のPython 2.7.10で、python3やpython3.6コマンドがパッケージでインストールしたバージョンのPythonが呼ばれます。

% which python
/usr/bin/python
% which python2.7
/usr/bin/python2.7
(macOS標準のPython)

% which python2
python2 not found
(python2という実行ファイルはなかった)

% which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
% which pip3
/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3
% which pip
/Library/Frameworks/Python.framework/Versions/3.6/bin/pip
(pipコマンドはPython3用)

最近のpip

最近pip listを実行すると次のような警告が現れます。

% pip3 list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
numpy (1.14.2)
paramiko (2.4.1)
pip (10.0.1)
...

なのでpip.confを作って設定します。

$ vi ${HOME}/.pip.conf
[list]
format=legacy

$ export PIP_CONFIG_FILE="${HOME}/.pip.conf"

ところが、最近のpipだと次のような警告が現れます。そのため、format=columnsを設定すれば警告は表示されなくなります。

% pip3 list
DEPRECATION: The legacy format has been deprecated and will be removed in the future.

こんな感じです。

% pip3 list      
Package      Version
------------ -------
asn1crypto   0.24.0 
bcrypt       3.1.4  
cffi         1.11.5 
cryptography 2.2.2  
idna         2.6    
mpmath       1.0.0  
numpy        1.14.1 
paramiko     2.4.0  
pip          10.0.1 
pyasn1       0.4.2  
pycparser    2.18   
PyNaCl       1.2.1  
setuptools   39.0.1 
six          1.11.0 
sympy        1.1.1 

pipでインストールしたパッケージの更新

--oでアップデートできる一覧を確認して、pip install -Uでパッケージをインストールすれば良いそうです。

% pip3 list --o               
Package  Version Latest Type 
-------- ------- ------ -----
numpy    1.14.1  1.14.2 wheel
paramiko 2.4.0   2.4.1  wheel

% pip3 install -U numpy paramiko
...
Successfully installed numpy-1.14.2 paramiko-2.4.1

macOSにインストールしたPythonを削除する

「フォルダをゴミ箱に入れて終わり」...ではないようです。

superuser.com