Fatal Python error: _PySys_BeginInit: can't initialize sys module

Linux에서 Python을 소스코드로 빌드해서 설치하려고 할 때 위와 같은 메시지가 보이면서 빌드가 안될때가 있습니다.

원인은 랭귀지 설정이나 환경설정이 빌드에 맞지 않기 때문에 발생하는 것인데 일일히 원인을 찾아서 해결하기가 매우 번거롭습니다. 로케일 설정(locale)같은 것이나 몇개를 수정하면 된다는 글을 찾아 볼 수 있지만 생각만큼 잘 되지 않고 많은 시간을 허비해야 합니다.

가장 간단한 해결책은 root로 로그인 또는 su로 root 전환을 해서 빌드하면 됩니다. 빌드할 때 sudo를 사용해도 잘 되지 않으므로 확실하게 root로 로그인해서 빌드하면 됩니다.

Python 소스 컴파일에서 Error in `python': corrupted size vs. prev_size 에러

리눅스에 문제가 있거나 너무 오래된 버전의 리눅스 배포판을 사용할 때 Python source를 다운로드 받아서 빌드해야 하는 경우가 있습니다

이때 configure를 실행한 뒤 make 를 실행하면 다음과 같은 에러가 나올 수 있습니다.

Error in `python': corrupted size vs. prev_size

해결책은 다음과 같이 하면 됩니다.

sudo apt-get install libtcmalloc-minimal4
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"

Ubuntu 14.04에 Python 3.7 설치하기

오래된 Ubuntu 14.04에 Python 3.7을 설치할 때 필요한 간단한 절차입니다. 이 글을 쓰는 시점에서의 최신 Ubuntu 18.04이고 곧 20.04 버전이 나올 예정입니다.

그리고 현재 Python은 3.7.x가 최신 버전인데 Ubuntu 14.04에는 3.6.x가 설치되어 있고 14.04에 3.7.x는 그냥은 설치되지 않습니다.

3.6.x를 그냥 쓰면 되지 않겠냐고 하겠지만 3.6과 3.7은 마이너 버전 하나의 차이로 보이지만 실제로는 많은 부분에서 차이가 있습니다. 성능, 보안, 문법과 같은 것들입니다. 최신 패키지들도 3.6에서는 오작동하는 사례가 많습니다.
3.7을 설치해서 사용하는 것이 좋습니다.

sudo apt update  # 깨끗하게 한번 apt 정보 갱신
sudo apt install software-properties-common  # add-apt-repository 명령어를 설치하기 위한 것
sudo add-apt-repository ppa:deadsnakes/ppa  # 레파지토리를 등록합니다.
sudo apt update  # apt에 정보를 업데이트합니다.
sudo apt install python3.7  # python 3.7을 설치합니다.