pyenv installすると_ctypes云々でエラー in archlinux
ある日
会社のarch linux環境でpyenvを入れたら pyenv install 3.7.1
でコケるようになってしまった
ぐぐっても情報なかったので参考になれば幸いです
結論
$ sudo pacman -S libffi
$ LDFLAGS="-L/usr/lib" CFLAGS="-I/usr/lib/libffi-3.2.1/include -O2" pyenv install 3.7.1
Downloading Python-3.7.1.tar.xz...
-> https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
Installing Python-3.7.1...
Installed Python-3.7.1 to /home/kc5m/.pyenv/versions/3.7.1
過程
$ pyenv install 3.7.1
...
ModuleNotFoundError: No module named '_ctypes'
...
上記のようなエラーが出て早速ぐぐると以下の記事が。
https://qiita.com/hitochan777/items/941d4422c53978b275f8
なるほどlibffiを入れれば良いのだなと # pacman -S libffi
をしてみたものの同じエラーで止まる。3.6.5でも同様だ。
どうせいつものncurses5互換ライブラリの問題だろと入れてみたものの変わらず
とりあえずlibffiパッケージに含まれているファイルを確認してみる
$ pacman -Fl libffi
libffi usr/
libffi usr/lib/
libffi usr/lib/libffi-3.2.1/
libffi usr/lib/libffi-3.2.1/include/
libffi usr/lib/libffi-3.2.1/include/ffi.h
libffi usr/lib/libffi-3.2.1/include/ffitarget.h
libffi usr/lib/libffi.so
libffi usr/lib/libffi.so.6
libffi usr/lib/libffi.so.6.0.4
libffi usr/lib/pkgconfig/
...
ここでヘッダファイルが変な位置(/usr/include
に配置されると思ってた)にあると気がつく
とりあえず試してみる
$ LDFLAGS="-L/usr/lib" CFLAGS="-I/usr/lib/libffi-3.2.1/include -O2" pyenv install 3.7.1
Downloading Python-3.7.1.tar.xz...
-> https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
Installing Python-3.7.1...
Installed Python-3.7.1 to /home/kc5m/.pyenv/versions/3.7.1
通った。
めでたしめでたし
余談
自宅環境の幾つかのarchlinuxでは上記エラーが再現しなかった。
しかもそれら環境にはlibffiが入っていない。
Author And Source
この問題について(pyenv installすると_ctypes云々でエラー in archlinux), 我々は、より多くの情報をここで見つけました https://qiita.com/kentac55/items/6881725c8e6343bd8965著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .