2025年6月23日月曜日

pipenv run で TAB でコマンドやファイル名の補完が行われないときの対処方法

pipenv run で TAB でコマンドやファイル名の補完が行われないときの対処方法

概要

zsh や補完ファイルの設定は全く同じなのに補完してくれない環境があったので対応しました

環境

  • macOS 15.5
  • Python 3.12.11
  • pyenv 2.6.3

対処方法

基本的には pipenv は pyenv でインストールされた python を使って pipenv も実行されることを想定しています
pyenv でインストールした python でインストールされた pipenv を使っている場合はちゃんと補完してくれます
しかし pyenv でインストールした python でインストールされていない pipenv を使っている場合には補完してくれません

具体的には以下のとおりです

  • 補完してくれる pipenv のパス
/Users/user01/.pyenv/shims/pipenv
  • 補完してくれない pipenv のパス
/opt/homebrew/bin/pipenv

つまり Homebrew でインストールした pipenv を優先して使ってしまっているために補完してくれていませんでした
単純に Homebrew でインストールした pipenv アンインストールすれば OK です

  • brew uninstall pipenv

Homebrew 側の pipenv をアンインストールしたくない場合は PATH の優先順位を変更しても OK です
その場合は .zsh などを確認してください

最後に

システムで使用するツールが Python を使用する場合にはシステムグローバルな Python をインストールする必要がありますが基本的には仮想環境ごとに Python のバージョンを指定して使えるようにするのがいいと思います

0 件のコメント:

コメントを投稿