ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ubuntu16.04][Python3] Python3 버전 복구
    Today_I_Learned/Python 2023. 12. 1. 15:13

    [환경]

    Ubuntu 16.04

    Python3.8 ( -> Ubuntu 16.04 의 기본 버전인 Python3.5 로 복구가 목표)

     

    [요약]

    pyhon3 링크 변경

    python3 경로의 하위 파일을 python3.5의 파일들로 교체

    특정 버전의 python 제거 (선택사항)

    필요한 Package들 재설치

     

    pyhon3 링크 변경

    python3 명령어로 python 기본 버전이 실행되도록 하고 싶다면 python3 명령어에 연결된 링크 설정을 변경해야 한다.

     

    단순히 update-alternatives 로 변경했을 경우 update-alternatives 로 다시 원래 버전을 지정해주면 된다.

    sudo update-alternatives --config python3 -> 원하는 python 버전의 번호 입력

     

    그러나 필자처럼 빌드로 버전을 변경했거나 잘 몰라서(당시 신입이었어서...) 파일 시스템을 마구 건드렸을 경우 수동으로 하나하나 관련 파일을 지워주고 링크를 변경해야 한다.

    python3에 update-alternatives 를 이용해 연결된 모든 링크 제거: sudo update-alternatives --remove python3 /usr/bin/python3

    python3 를 3.5 로 심볼릭 링크 변경: sudo ln -sf /usr/bin/python3.5 /usr/bin/python3

     

    추가로 pyenv를 사용하여 python3 에 연결된 버전을 변경했을 경우 다음 방법을 수행하면 된다.

    sudo rm -rf {각자 경로}/.pyenv

    .bashrf 나 .bash_profile 하단에 나오는 다음 명령어 실행

    export PATH=" {각자 경로} /.pyenv/bin:$PATH"

     

     

    python3 경로의 하위 파일을 python3.5의 파일들로 교체

    /usr/lib/python3 내부 파일을 /usr/lib/python3.5 로 교체

    sudo cp -r /usr/lib/python3.5/* /usr/lib/python3/

     

     

    특정 버전의 python 제거 (선택사항)

    whereis python3  | grep 3.8

    -> 3.8 이 붙은 모든 경로 삭제 (rm -rf ~)

    위에서 빠진 File 삭제

     

    sudo rm -rf .local/lib/python3.8

    sudo rm -rf /usr/local/bin/*3.8*

    sudo rm -rf /usr/local/lib/*3.8*

    sudo rm -rf /usr/local/share/man/man1/*3.8*

    sudo rm -rf /usr/local/include/python3.8

     

     

    필요한 Package들 재설치

    sudo apt install --reinstall python3-software-properties

    sudo apt install --reinstall python3-apt


    결론:  Ubuntu가 기본 제공하는 python3의 버전은 웬만하면 바꾸지 말자. 다른 버전을 사용해야 한다면 가상환경을 사용하자

     

    'Today_I_Learned > Python' 카테고리의 다른 글

    poetry  (0) 2024.06.04
    [사용법] virtualenvwrapper  (2) 2023.11.21
    List 정렬 기준, iterable객체의 요소가 iterable 일 때  (0) 2023.11.01
    class method vs. static method  (0) 2023.09.26
    이터레이터 iterator  (0) 2023.09.17

    댓글

Designed by Tistory.