0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonを使えるようにする手順@Mac

Posted at

Python3を使えるようにするために

Macには標準でPythonが入っていますが、バージョンが2と古く、そのまま使うのは非推奨です。古いプロジェクトであれば2を使いますが、世の中の多くは3をベースに動いていますので、3に合わせましょう。

本稿は環境によって差異が出る内容となっています。
コマンドを安易にコピペせず、よく確認の上作業をお願いします。(責任は負いかねます)

誤りがありましたら、コメントでのご指摘をお願いします。

Homebrewを入れる

まずはともあれ、Homebrewを入れましょう。
これはパッケージ管理アプリケーションという類のもので、パッケージ(今回でいうとPython3がこれにあたります)の管理をいい感じにやってくれます。

homebrewのインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

きちんと入ったことを確認するために、version確認をしましょう。

homebrewのバージョン確認
brew --version
標準出力
Homebrew <version>

上記のようになればOKです。

Pythonをインストールする。

特にこだわりがなければ、Pythonの最新版をインストールしましょう。

Pythonのインストール
brew install python

終わったら、もちろんversion確認を。

Pythonのバージョン確認
python -V
python 2.7

こうなっているはずです。
実はここが落とし穴!
brew install pythonをした時のログ(多分めっちゃ長い)ですが、python3.12とか「python3.*」が書かれているはずです。

Macには元々Python2が入っていて、そっちが参照されちゃっている状態です。
ここままでは、せっかくインストールしたPython3が使えず、python2を使うことになります。
(それでも問題はなくないですが、、、今回の主題は”Python3がつかえるようになろー”です。)
これを、インストールしたPython3に変えていきましょう。

Python2からPython3に変更する。

まずは、Pythonがどこにあるのかを見ましょう。

Pythonがどこにあるのか
where python
標準出力
/usr/local/bin/python

環境によっては少し表記が違うかもしれません。
出力された内容に後述の内容を読み替えてください。

Pythonは/usr/local/binというパスにいることはわかりました。
Mac(ひいてはLinux,UNIX)のコマンドは、ディレクトリのどこかにファイルとして存在しています。
Python、というコマンドを打つと、このパスから参照されます。(今回はコマンドの参照については割愛します) 

では、このPATHに移動しましょう。

cd /usr/local/bin

ここで

ls

するとかなりの数の出力が出ると思います。今回参照したいのはPythonだけなので、絞りましょう。

ls -l | grep python

すると、pythonの関連のエイリアスがたくさん並んでいる画面になったと思います。

lrwxr-xr-x  1 <user name>  admin        42  9  3 01:31 2to3-3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/2to3-3.9
lrwxr-xr-x  1 <user name>  admin        41  9  3 01:31 idle3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/idle3.9
lrwxr-xr-x  1 <user name>  admin        48  9  3 03:15 pip -> /usr/local/Cellar/python@3.9/3.9.19_1/bin/pip3.9
lrwxr-xr-x  1 <user name>  admin        40  9  3 01:32 pip3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/pip3.9
lrwxr-xr-x  1 <user name>  admin        42  9  3 01:31 pydoc3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/pydoc3.9
lrwxr-xr-x  1 <user name>  admin        43  9  3 02:49 python -> ../Cellar/python@3.9/3.9.19_1/bin/python3.9
lrwxr-xr-x  1 <user name>  admin        38  7  6 14:04 python-build -> ../Cellar/pyenv/2.4.5/bin/python-build
lrwxr-xr-x  1 root              wheel        75  6 24  2022 python-config -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
lrwxr-xr-x  1 root              wheel        69  6 24  2022 python2 -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python2
lrwxr-xr-x  1 root              wheel        76  6 24  2022 python2-config -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
lrwxr-xr-x  1 root              wheel        71  6 24  2022 python2.7 -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x  1 root              wheel        78  6 24  2022 python2.7-config -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x  1 root              wheel        70 11  3  2022 python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3
lrwxr-xr-x  1 root              wheel        77 11  3  2022 python3-config -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3-config
lrwxr-xr-x  1 root              wheel        78 11  3  2022 python3-intel64 -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3-intel64
lrwxr-xr-x  1 root              wheel        73 11  3  2022 python3.11 -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11
lrwxr-xr-x  1 root              wheel        80 11  3  2022 python3.11-config -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11-config
lrwxr-xr-x  1 root              wheel        81 11  3  2022 python3.11-intel64 -> ../../../Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11-intel64
lrwxr-xr-x  1 <user name>  admin        43  9  3 01:31 python3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/python3.9
lrwxr-xr-x  1 <user name>  admin        50  9  3 01:31 python3.9-config -> ../Cellar/python@3.9/3.9.19_1/bin/python3.9-config
-rwxr-xr-x  1 <user name>  admin     28640  9  3 02:36 python_bk
lrwxr-xr-x  1 root              wheel        69  6 24  2022 pythonw -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw
lrwxr-xr-x  1 root              wheel        70  6 24  2022 pythonw2 -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2
lrwxr-xr-x  1 root              wheel        72  6 24  2022 pythonw2.7 -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
lrwxr-xr-x  1 <user name>  admin        42  9  3 01:32 wheel3.9 -> ../Cellar/python@3.9/3.9.19_1/bin/wheel3.9

この中で重要なのは、以下の1行です。

lrwxr-xr-x  1 root              wheel        68  6 24  2022 python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

文中に->というように矢印が見えますが、これは”左のコマンドが入力されたら、右のコマンドを実行するよー”みたいなやつです。(これをエイリアスといいます)

諸悪の根源(こと今回の主題に限っては)はこの部分。
ここで指定されているのがpython2になっています。

このバージョンをPython3に変えましょう。

カレントディレクトリの確認

まずは安全のために、カレントディレクトリをしっかり確認。
rmコマンドは環境を安易に破壊できてしまいますので、今どこで使おうとしているのかは確認しましょう。
(今の環境でも十分怖いですが、、、、)
あまりピンときていない方は、「rm 危険」とかで調べてみてください。

pwd
出力結果
/usr/local/bin #これになっていることをしっかり確認!!!

エイリアスの削除

rm python
ls -l | grep python # pythonエイリアスがなくなっていることを確認

エイリアスの再作成

ln -s ../Cellar/python@3.12/3.12.5/bin/python3.12 /usr/local/bin/python
ls -l | grep python # pythonのエイリアスが更新されていることを確認

確認

次のコマンドで、正しい出力が出ればOKです。

python -V
出力結果
Python 3.12.5

これで、pythonコマンドでpython3が利用できるようになりました。

自分の環境では、homebrewのパッケージインストール先が下記になっていました。
/usr/local/Cellar
なので、これが別の場所だった方は適宜読み替えてください。

homebrewでインストールしたバージョンがpython3.12なら、
where python3.12
ののち、
出てきたエイリアスの指定先を調べてみましょう。

pipのエイリアス更新

同様に、pipのエイリアスを変更します。
pipはHomebrewと似ていますが、ライブラリ管理アプリケーションになります。
違う点は、"pythonで使用するライブラリはpip"というところ。
下記のイメージのように、「担当範囲が違う」という感覚でいいかなと思います。
無題のプレゼンテーション.jpg

これも初期設定ではpip=python2のpipになっていますので、変えていきましょう。

ディレクトリ/usr/local/binに移動してください。(さっきpythonのエイリアスを編集したのと同じディレクトリです。続きで作業なら移動不要)

cd /usr/local/bin
pwd #/usr/local/binと出ればOK

pipエイリアスの確認

 ls -l | grep pip
出力結果
lrwxrwxr-x  1 root              wheel        65  6 24  2022 pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

同様に、python2のものになっています。

エイリアスの削除

rm pip
ls -l | grep pip # pipエイリアスがなくなっていることを確認

エイリアスの再作成

ln -s ../Cellar/python@3.12/3.12.5/bin/pip3.12 /usr/local/bin/pip
ls -l | grep pip # pipのエイリアスが更新されていることを確認

確認

次のコマンドで、正しい出力が出ればOKです。

pip -V
出力結果
pip 24.2 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)

オマケ)パッケージ管理って何?必要?って方へ

自分が最初そうだったので、、、

アプリケーションだったりをWeb検索して、HPからインストーラーをダウンロード→exeだったりdmgをぽちぽちしてインストールしていた人にとって、コマンドラインで色々操作するのには抵抗があります。

ただし、パッケージ管理の便利なところは

  • 一括でアップデートできる
  • 複数のバージョンを切り替えられる。
  • アプリケーションを入れているかどうかが一発でわかる。
    など、いろいろなメリットがあります。

いまは”これでアプリの管理をするとめちゃくちゃ便利!!”というイメージでいればOKです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?