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'
...

상기와 같은 에러가 나와서 조속히 빠지면 이하의 기사가.
htps : // 코 m/히토쨩 777/있어 ms/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가 들어 있지 않다.

좋은 웹페이지 즐겨찾기