[Ubuntu] Python 3.x을 설치하는 방법
안녕하세요. 명월입니다.
이 글은 Ubuntu에서 Python 3.x을 설치하는 방법에 대한 글입니다.
Linux계열의 OS는, 즉, Ubuntu나 Centos의 경우는 기본적으로 Python이 설치되어 있습니다. 아마 제 생각에는 ms계열 빼고는 기본적으로 설치되어 있는 것 같습니다.
설치되어 있는 것은 좋은데 문제는 버전입니다. 2.X버전의 Python이어서 최신 라이브러리를 제대로 사용하기가 어렵습니다.
2.x버전이라고 라이브러리가 적은건 아니지만, 그냥 저는 최신이 좋습니다.
Python에는 여러가지 기본 모듈이 탑재되어 있는 패키지가 있는 데 그것이 아나콘다입니다.
링크 - https://www.anaconda.com/
다운로드 링크 - https://www.anaconda.com/distribution/#download-section
다운로드가 끝났으면 다운로드 받은 폴더로 이동해서 sha256sum으로 해당 파일을 해쉬 검사합니다.
sha256sum Anaconda3-2019.10-Linux-x86_64.sh
문제가 없으면 설치를 시작합니다.
(참고로 root가 아닌 실제 사용하고 있는 유저로 설치하는 게 편합니다. root로 설치하면 설정이 조금 귀찮아 집니다.)
bash Anaconda3-2019.10-Linux-x86_64.sh
엔터를 누르라고 하네요.. 누릅니다.
그럼 라이센스에 대한 설명입니다. 그냥 스페이스 누르고 패스한 다음에 마지막에 동의 yes해 줍니다.
설치할 장소를 묻습니다. 특별히 어디에다 설치할 것 없으면 엔터칩니다.
설치가 끝나면 초기 설정을 하냐고 묻는데 당연히 초기 설정합니다.
여기 설정이 끝나면 .bashrc 파일이 anaconda 설정이 추가되었습니다.
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/nowonbun/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/nowonbun/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/nowonbun/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/nowonbun/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
이 부분을 root로 들어가서 root의 .baserc 하단에 추가하면 root 유저에서도 사용 가능합니다.
참고로 이게 아까 root로 설치 안하고 사용자로 설치한 이유입니다. root로 설치하면 일반 사용자에서 사용할 때 권한이 걸립니다. 매우 귀찮아 지죠.
그러나 반대로 하게 되면 root는 가장 최상위이기 때문에 권한 문제가 발생하지 않습니다.
설치가 끝났습니다. 뭐 여기서 재부팅을 해도 되는 데 귀찮으니 source로 bashrc파일을 다시 읽습니다.
그럼 커맨드 앞에 (base)라는 것이 생깁니다. 이게 Python 환경이라는 뜻인데 그냥 base에서 사용해도 상관은 없습니다.
이 환경은 pip로 모듈을 설치하거나 수정할 때 구분을 지어 놓는 것입니다. 그냥 로컬 스크립트 용이면 별 상관없는데 모듈도 막 다운 받아 놓으면 간혹 의존성이 어긋나서 버그가 발생하는 경우가 있습니다.
근데 저도 의존성이 어긋날 때까지 모듈을 사용해 본 적이 없어서..
# 환경 생성
conda create --name my_env python=3
# 환경 활성화
conda activate my_env
설치가 완료 되었습니다.
참조 - https://www.digitalocean.com/community/tutorials/how-to-install-anaconda-on-ubuntu-18-04-quickstart
여기까지 Ubuntu에서 Python 3.x을 설치하는 방법에 대한 설명이었습니다.
궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.