🦁

Pythonライブラリインストール時のエラー'Can not execute setup.py since ...'を解消した話

2022/02/24に公開

環境

  • WSL2
  • Ubuntu 18.04 から 20.04 にアップグレード
  • Ubuntu 18.04 の時に asdf (pyenv)をインストールしている
  • Python 3.9.10 (現象には関係ない)

現象

asdfで作成した Python 実行環境上で以下コマンドを実行するとエラーが発生する。

pipenv install graphene-django

### 中略 ###

Can not execute setup.py since setuptools is not available in the build environment

結論

asdfの Python 環境を再インストール (=pyenvの再インストール)

# アンインストール
asdf plugin remove Python

# インストール
asdf plugin add Python

原因

  • Ubuntu 18.04 の時にインストールしたasdf(pyenv)が、OS アップグレード後も Ubuntu 18.04 の時のライブラリ(libffi.so.6)を参照していた。
  • graphene-djangolibffi.so.xを使用してインストール(ビルド?)するが、libffi.so.6を使用しようとしてエラー

解決まで

  • とりあえずログを見てキーワードを探す
    -> キーワードを見つけたらググる
  • pyenvを使わず、pipを使ってインストールしてみる
    -> 出力されるログが変わるため、異なる視点でのアプローチができる

考察など

  • 他原因もあるので、解決策の 1 つである
  • OS のアップグレード前に asdf(pyenv)をインストールしていると発生する
  • graphene-djangoのインストールで発生したが、旧 ver のライブラリに依存するものがれば同様の現象、対策で ok
  • 根本的にはpyenvを更新すれば良い
  • 個人的にはこの対応は環境を汚すので全力回避した

参考

https://www.chazine.com/archives/4166

その他

題名が長いと怒られた。

GitHubで編集を提案

Discussion