🦁
Pythonライブラリインストール時のエラー'Can not execute setup.py since ...'を解消した話
環境
- 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-django
がlibffi.so.x
を使用してインストール(ビルド?)するが、libffi.so.6
を使用しようとしてエラー
解決まで
- とりあえずログを見てキーワードを探す
-> キーワードを見つけたらググる -
pyenv
を使わず、pip
を使ってインストールしてみる
-> 出力されるログが変わるため、異なる視点でのアプローチができる
考察など
- 他原因もあるので、解決策の 1 つである
- OS のアップグレード前に
asdf
(pyenv
)をインストールしていると発生する -
graphene-django
のインストールで発生したが、旧 ver のライブラリに依存するものがれば同様の現象、対策で ok - 根本的には
pyenv
を更新すれば良い - 個人的にはこの対応は環境を汚すので全力回避した
参考
https://www.chazine.com/archives/4166
その他
題名が長いと怒られた。
Discussion