티스토리 뷰
1. 소스코드로 python3.9 설치하기
# 필요한 프로그램 받기
$sudo apt update
$sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
# python 소스코드 받기
$ wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
# 압축 풀기
$ tar -xf Python-3.9.1.tgz
# makefile 생성
$ cd Python-3.9.1
$ ./configure --enable-optimizations
$ make -j 12
# make 실행
$sudo make altinstall
# python 설치 확인
$python3.9 --version
python 3.9 설치 확인
2. alternatives 를 이용하여, 사용할 python 등록하기
운영체제에 python 여러 버전이 설치되어 있을 경우, 필요에 따라 버전을 변경해줘야 한다.
이 글에서는 python3 으로 설치한 python3.9를 실행하도록 설정한다.
※ 참고한 사이트에서는 /usr/bin/python3.9가 설치되었지만, 나는 /usr/local/bin/python3.9 가 설치되었다.
당황하지 말고~ 설치된 경로로 링크를 걸어준다.
# python 버전의 쉬운 변경을 위해 alternatives에 등록
$sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 1
#sudo update-alternatives --install [symbolic link path] [명령어] [real path] [우선순위]
링크 걸은 후 python3 버전 확인
3. 필요한 python library pip 이용하여 설치하기
# 패키지 관리도구 pip을 이용하여 라이브러리 설치
# 여기서는 matplotlib 설치
$sudo python3 -m pip install matplotlib
에러 발생
!! 잘 설치될 줄 알았으나, 아래 화면과 같은 긴... 로그와 함께 Exception 발생 ...
Error: Exception ~~~~ subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
방법 1)
해당 참고사이트를 확인하기 전에는 아래 방법2) 사용했지만... 방법 1 처럼 링크를 걸어서 해결하는 부분도 있었다.
그래서 링크거는 부분과 해당 참고 사이트를 첨부한다.
방법 1도 마찬가지로 해당 에러는 python 버전으로 인해서 발생하는 것으로, 링크를 걸어 해결한다.
$ sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.9/site-packages/lsb_release.py
https://clients.sisrv.net/knowledgebase/140/Debian-9--How-to-upgrade-to-python-3.9.html
방법 2)
밑에 참고 사이트를 통해 에러 해결
/usr/bin/lsb_release 파일 삭제
※ 다른 사이트에서는 lsb_release를 다시 설치하거나 내부 코드를 변경하거나 하는데.... 나는 다 안되서 지웠다.
※ 설치한 python 버전과 맞지 않아 문제가 발생한 것으로 추측...
# 파일 제거
$sudo rm /usr/bin/lsb_release
제거 후, 다시 패키지 설치하면 아래 화면과 같이 잘 설치된다.
reference
https://codechacha.com/ko/ubuntu-install-python39/
https://support.huaweicloud.com/intl/en-us/instg-A300_3000_3010/atlasdc_03_0050.html
'etc' 카테고리의 다른 글
[ Ubuntu ] sudo apt update 에러 (1) | 2022.02.21 |
---|---|
[ubuntu] python 파일 실행 시, PermissionError (0) | 2022.02.18 |
[Docker] Dockerfile - ENTRYPOINT vs CMD (0) | 2022.01.24 |
[Docker] container 및 images 삭제 명령어 (0) | 2022.01.24 |
[Docker] Dockerfile 작성법 (0) | 2022.01.21 |