添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
腼腆的卡布奇诺  ·  [Another] Unable to ...·  2 月前    · 
稳重的甘蔗  ·  qml ...·  2 月前    · 
乖乖的生姜  ·  彭蕾回归阿里兼任CPO·  5 月前    · 
Pyenv を入れた後、”command not found” で Python がインストールできない時の対処

Pyenv を入れた後、”command not found” で Python がインストールできない時の対処

Pyenvをセットアップ後、Pythonインストールで「python-build: command not found」となり失敗した時に行なった対処法を紹介します。
Clock Icon 2020.05.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Guten Tag, ベルリンより伊藤です。

Pyenv を入れて意気揚々とPythonインストールしようとしたら、次のエラーで失敗しました。

$ pyenv install 3.8.2 /usr/local/bin/pyenv-install: line 53: python-build: command not found /usr/local/bin/pyenv-install: line 76: parse_options: command not found

このエラー事例を探しても見当たらなかったので、解決した方法をご紹介します。

OS: MacOS Mojave 10.14.6

インストールまでにやったこと

Pyenvのインストール & 環境設定

pyenv のセットアップですが、複数の外部サイト(※)を参照した限り、だいたい同じだったので、次の方法で行いました。

※例えば: MacでPython使う時の最低限のメモ(pyenv編) - Qiita

  • Pyenv をインストール $ brew install pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    参照した情報の限りでは、もうこの次にPythonインストールに進んでいるんですが、冒頭のエラーに引っかかり次に進めません。

    ※参考に載せておきますが不要な方は読み飛ばしてください※

    Pyenv自体が入っているのは確認できました。参照した情報は正しく設定できているようです。まだPyenvではPythonをインストールしていないので、Pythonは当然まだローカルのパスを参照しています。

    $ pyenv -v pyenv 1.2.18 $ pyenv versions * system (set by /Users/mai/.pyenv/version) $ which pyenv /usr/local/bin/pyenv $ cat .bash_profile | grep -i pyenv export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" $ which python /usr/bin/python

    PATHで通している場所には、ディレクトリのみが作成されていました。

    $ ls -lR /Users/mai/.pyenv total 0 drwxr-xr-x 2 mai staff 64 May 7 13:29 shims drwxr-xr-x 2 mai staff 64 May 4 14:09 versions /Users/mai/.pyenv/shims: /Users/mai/.pyenv/versions:

    which pyenv のパスを追ってみるとこのようになっていました。この辺はこれで問題ないようでした。

    $ ls -la /usr/local/bin/pyenv lrwxr-xr-x 1 mai admin 32 Apr 30 18:59 /usr/local/bin/pyenv -> ../Cellar/pyenv/1.2.18/bin/pyenv $ ls -la /usr/local/Cellar/pyenv/1.2.18/bin/pyenv lrwxr-xr-x 1 mai staff 16 Apr 2 21:32 /usr/local/Cellar/pyenv/1.2.18/bin/pyenv -> ../libexec/pyenv $ ls -la /usr/local/Cellar/pyenv/1.2.18/libexec/pyenv -rwxr-xr-x 1 mai staff 3308 Apr 30 18:59 /usr/local/Cellar/pyenv/1.2.18/libexec/pyenv

    前提条件の再確認

    参考にしたサイトでは触れられていませんでしたが、改めて 公式のGitHubページ を確認すると、「Basic GitHub Checkout」の手順3~5ができてなかったので、対応しました。

    ■ 3-4. pyenv init の追加 & 変更を反映

    .bash_profile に既に eval "$(pyenv init -)" が含まれていましたが、公式に従うよう、既存のを消して下記で追加し直しました:

    $ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile $ exec "$SHELL"

    ■ 5. 依存するビルド環境の用意

    Suggested build environment に従い、各種インストールします。

    ・Xcode Command Line Tools のインストール

    $ xcode-select --install

    ・Homebrewで各種インストール( brew list で既存のモジュールを確認し、ないものだけ指定)

    $ brew install openssl readline sqlite3 xz zlib

    で、ここまでやっても pyenv install の結果は冒頭の通りで変わりませんでした。今回のエラーには意味なかったのかもしれませんが、推奨環境に整えたということで。

    シンボリックリンクの再関連付け

    手詰まりになり、社内の猛者チャンネルで上の状況を説明したところ、教えてもらった回答で治りました!
    (教えていただき、ありがとうございました!!)

    下記ディレクトリの中にpython-buildがありますか?
    →ありました

    /usr/local/Cellar/pyenv/1.2.18/bin/

    もしあるのであれば、下記コマンドで再度関連づけてみてはいかがでしょうか?
    →1つ追加で関連付けされたようです!

    $ brew unlink pyenv && brew link pyenv Unlinking /usr/local/Cellar/pyenv/1.2.18... 3 symlinks removed Linking /usr/local/Cellar/pyenv/1.2.18... 4 symlinks created

    そして、その後無事にエラーなくPythonインストールできるようになりました!

    $ pyenv install 3.8.2 $ which python /Users/mai/.pyenv/shims/python $ pyenv global 3.8.2 $ pyenv versions system * 3.8.2 (set by /Users/mai/.pyenv/version) $ python -V Python 3.8.2

    結果、 brew unlink pyenv && brew link pyenv でエラー解消に繋がりました。

    猛者すごい...

    原因はなんだったか分からないですが、実際には他の作業と並行してやっていたので何かが影響してしまったのかも...ググっても情報がなかったということは稀有な例なのかもしれませんが、トラブルシューティングにご参考くださいませ。

    その後、 virtualenv の入れ方・使い方は下記ブログを参考にしました!

    anyenvからpyenv+virtualenvをインストールしてバージョンやパッケージを切替可能なPython環境を用意する

    おまけ:Pyenv を入れるにあたり既存の Python を消すべき?

    ちなみに、Pyenv を入れるまでは、ローカルの Python 2.7 を使っていたのですが、2.7 は廃止するということで Python 3.8 も入れたところでした。この時に気持ち悪いので使わないローカルの Python は消してしまおうと思ったんですが、いろいろ調べた限り、 既存の Python を削除するのはあまり推奨されていない ようです。

    それでも消したいという意固地な方、下記のような方法でアンインストールできました。

  • Macにインストールした公式Pythonをアンインストールする方法
  • 本家Pythonのアンインストール for Mac – CodeAid(コードエイド)
  • 私もインストールしたてで何にも使っていなかった 3.8 の方は消去しました。

    また、この時 pip2 freeze でパッケージを確認してみたら awscli が入っており、古い Python に依存しているのがやっぱり気持ち悪かったので一度アンインストールし、 Python個別のインストールの不要な AWS CLI バージョン2 を入れ直しました。

    $ pip uninstall awscli $ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" $ sudo installer -pkg AWSCLIV2.pkg -target / $ rm AWSCLIV2.pkg

    これを機に各種バージョンなど見直してはいかがでしょう。

  • pyenv/pyenv: Simple Python version management
  • Troubleshooting/FAQ · pyenv/pyenv Wiki
  •