LoginSignup
7
3

More than 1 year has passed since last update.

Mac上でpipで入れたパッケージが何をしても動かなかったのを解決した話

Posted at

誰向け?

MacでHomebrewを使っていて、pipで入れたパッケージがうまく動かない人向け。

状況

pip3で入れたはずのパッケージがどうしてもcommand not foundになる。

python3 -m pip install <パッケージ名> —user
とかやってもダメ。

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: chalice in ./Library/Python/3.8/lib/python/site-packages (1.27.1)
…

と出るし、インストールはされているがMac側がうまく参照できていないっぽい。

結論

homebrewをインストール後にpython3やpip3をインストールしなおしていなかった

(brewでアレコレと入れていたもののpython3やpip3はデフォルトのものを使っていたことになり、PATHがおかしなことになっていたらしい)

回復方法

今使っているpythonはどこのもの?

おそらくデフォルトのpython3やpip3をつかっていた人はwhichコマンドを使うと

which python3 → /usr/bin/python3
which pip3/usr/bin/pip3

となっていると思う。これは MacデフォルトのPythonのPATH

brew install python3

とターミナルに打ち込み、完了すると

  • 新しくインストールし直されたpython
  • 新しくインストールし直されたpip
  • 今後pipでインストールするものの場所

のPATHが表示されるので、メモしておく。

PATHを書き換えるには

最近のMacではデフォルトのシェルがzshになっている。

そこでホームディレクトリ(Finder→移動タブ→ホーム で表示されるディレクトリ)で[command]+[shift]+[.(ドット)]キーを押すことで隠しファイルを表示する。
.zshrcファイルがPATHの設定ファイルなのだが、存在しないこともある。

その場合はターミナル上でホームディレクトリに移動した上で

touch .zshrc

をしてサクッとつくっておこう。

エディタでもvimでもいいのでとりあえず.zshrcファイルを開き、

.zshrc
# Python3
export PATH="$PATH:/usr/local/bin/python3"
# installed by pip3
export PATH="$PATH:/usr/local/lib/python3.9/site-packages"

と追記し、保存。ここは筆者の環境で表示されたPATHを記載しているが、これはそれぞれの環境に合わせて変更してほしい。

その後ターミナルで
source ~/.zshrc
と打ち込んで状態を更新しておく。

脱線 - コマンドがpythonだったりpython3だったりややこしい

python実行コマンドが環境によってpythonだったりpython3だったりする。本当になんで?
pythonと打ってpython3を実行できるようにできないものか。

これも.zshrcファイルに設定を追加しておくことでなんとかできる。

.zshrcファイルを開き、

.zshrc
alias python="python3"
alias pip="pip3"

と書き込み、保存。

ターミナルで
source ~/.zshrc
として更新しておく。

PATHが変更できたか確認

ターミナルを再起動し、
which python3
を実行して変更した通りのPATHになっているかを確認する。

変更が確認できれば、
pip install <パッケージ名>
を実行する。

完了

上記の方法で筆者はchalice(AWSのフレームワーク)のインストールを完了できました。

Mac環境でPATHを通し間違えたときはこちら

7
3
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
7
3