리눅스에 파이썬 새로운 버전 설치하기!

2023. 10. 25. 13:34 · Python 및 Torch 코딩 이모저모
목차
  1. 파이썬 설치하기
  2. configure 와 make
  3. 두 번째 시도
  4. update-alternatives
  5. symbolic link 란?
  6. update-alternatives : 우분투 패키지 버전관리

가장 먼저 한 일은 venv 가상환경 만들기.

하지만 기존에 있는 파이썬 버전과 다른 파이썬 버전의 가상환경을 만들어야 했다.

(기존 파이썬 버전 3.8.10 / 필요한 파이썬 버전 3.6.11)

 

하지만 venv 든 virtualenv 든 다른 파이썬 버전의 가상환경을 만들려면 그 버전의 파이썬이 설치되어 있어야 한다.

 

** 그렇다면 conda 는 왜 자동으로 여러 파이썬 버전에 대해 가상환경을 잘 만들 수 있었나? → 왜냐하면 conda 는 자기가 알아서 그 파이썬을 (만약에 내가 가지고 있지 않다면) 자동으로 깔아주고 그 후에 가상환경을 만들어줘서 그렇다!

 

파이썬 설치하기

참조 : Python3.6 설치

 

Dveamer

현실에서 살고 있지만 이상에 대한 꿈을 버리지 못한 몽상가의 홈페이지 입니다. 개인적인 기록을 주 목적으로 하며 일상과 프로그래밍 관련 글을 포스팅합니다.

dveamer.github.io

 

# 소스를 다운 받고 컴파일할 임시디렉토리를 생성
$ mkdir -p /tmp/intall_python3.6

# Python3.6 소스코드 다운로드
$ cd /tmp/intall_python3.6
$ wget <https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz>
$ tar -xvf Python-3.6.3.tgz

# 컴파일
$ cd Python-3.6.3
$ sudo ./configure --enable-optimizations
$ sudo make -j8
$ sudo make install

# test
$ python3 --version

# 작업 완료 후 임시디렉토리 삭제
$ cd /tmp
$ rm -rf install_python3.6/

 

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel
_dbm                  _gdbm                 _lzma
_sqlite3              _ssl                  _tkinter
readline

위의 명령어로 파이썬을 다운받으면 파이썬은 잘 다운받아지지만 위와 같이 몇몇 모듈이 없는 채로 다운받아지게 된다. 없어도 되는 이들도 있지만 _ssl 모듈 (이랑,, lzma?) 은 많이 사용한다고 한다.

특히 ssl 은 뭐였는지 기억은 안나지만 pickle 인가..엄청 당연하게 써야 하는 모듈이었다,,

⇒ 결론은 다시 다운받아야 했다는 것!

 

configure 와 make

configure

./configure 를 이용하여 make 파일을 생성해주는 과정이다. configure 를 이용하여 소스파일(다운받은 파이썬 파일이라고 추측) 에 대한 환경설정을 해주는 명령어이다.

 

make

make 는 소스를 컴파일하는 것이다.

 

💡 컴파일과 빌드는 또 다른 뜻이라고 한다. 컴파일이란 소스코드를 바이너리 코드로 변환하는 과정.
      (목적 파일이 생성된다)
      빌드는 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정.
     
       ** 컴파일은 빌드의 부분 집합.

 

 

컴파일이란 소스파일을 사용자가 실행 가능한 파일로 만들어주는 과정을 말한다.

make 과정이 끝나면 설치파일(setup 파일과 같은) 이 생성된 상태이다.

make 에게 어떤 프로그램을 컴파일하고 링크해야 하는지 설명한 것이 make file 이다.

 

make install

make install 은 make 가 만든 설치파일(setup) 을 가지고 설치하는 과정이다.

build 된 프로그램을 실행할 수 있게 파일을 알맞은 위치에 복사한다.

 

두 번째 시도

./configure -C --enable-optimizations --with-openssl=/bin --prefix=/bin/python-3.6.11

그래서 위와 같이 openssl 모듈이 어디 있는지 찾은 후에 --with-openssl 옵션에 openssl 폴더의 위치를 박아주면 openssl 을 인식할 수 있다고 한다.

또한 --prefix 라는 옵션은 파이썬을 어디에 깔지 명시해주는 옵션으로,

원래 기존 파이썬 3.8 은 bin 폴더에 있던데 이 옵션 없이 새로 까는 파이썬들은 다른 위치 (어디 있었는지는 안 기록해놧네,,헤헤.. 아마 usr/..) 에 깔려서 저렇게 같은 위치에 깔아주도록 설정했다.

$ python
$ import sys
$ sys.executable # 이걸로 찾았던거 같다.

 

update-alternatives

파이썬을 위처럼 커스텀 경로를 이용해 깔게 되면 자동으로 python version 이 잡히지 않는다.

기존에 깔려있던 python3 와 중복이 되면 중복 버전 중에서 하나가 실행이 되는데 이때 기존 버전으로 실행되는 것이다.

 

다른 버전이 실행되도록 바꾸고싶다면 update-alternatives 를 설정해주거나

/usr/bin/ 에 있는 python3 를 python3.6.11(원래 내가 원하던 버전) 을 새로 링크를 걸어주거나

alias 로 python3 가 아니라 python3.6.11 이 실행되도록 해야하는데

 

그중 가장 정상적인 방법이 update-alternatives 를 신청하는 것이라고 한다.

방법에 대해 알아보자.

 

symbolic link 란?

링크를 연결하여 원본 파일을 직접 사용하는 효과를 내는 링크이다.

윈도우의 “바로가기” 개념과 비슷하다.

참조 :  [Linux] 심볼릭 링크(Symbolic link)

 

[Linux] 심볼릭 링크(Symbolic link)

1. 심볼릭 링크(symbolic link) 란? - 링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크이다. 윈도우의 바로가기와 비슷한 개념 - 특정 폴더에 링크를 걸어 NAS, library 원본 파일

qjadud22.tistory.com

 

그러니까 alternatives 는 그 링크를 다른 버전으로 바꿔주는 역할을 하는 것이다!

 

 

update-alternatives : 우분투 패키지 버전관리

https://www.whatwant.com/entry/update-alternatives-%EC%97%AC%EB%9F%AC-%EB%B2%84%EC%A0%84%EC%9D%98-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0

 

update-alternatives (여러 버전의 패키지 관리하기)

여러 버전의 JDK를 사용하고 싶은 경우 때문에 알게된 명령어가 바로 "update-alternatives" 이다. 기본적인 사항을 한 번 살펴보기 위해서 java를 살펴보자. $ whereis java java: /usr/bin/java /usr/bin/X11/java /usr/l

www.whatwant.com

참조 :  Ubuntu에서 Python 버전을 변경하는 방법

 

Ubuntu에서 Python 버전을 변경하는 방법

우분투를 설치하면 파이선2.7이 설치되어있습니다. 리눅스의 Alternatives를 이용하면 python 버전을 쉽게 변경하고 관리할 수 있습니다. 우분투에 파이썬2.7과 파이썬3.5 버전을 모두 설치하고, 특정

codechacha.com

 

python3 -V # Python 3.8.10

위는 현재 사용하는 파이썬 버전을 나타내고

 

which python3 # /usr/bin/python3

그 버전이 어디에 설치되어있는지 알 수 있다.

 

ls -al /usr/bin/python3 # lrwxrwxrwx 1 root root 9 Mar 13  2020 /usr/bin/python3 -> python3.8

위의 명령어로 /usr/bin/python3 가 어떤 파일을 가리키는지 확인할 수 있다.

/usr/bin/python3 가 가르키는 파일이 주로 사용하는 파이썬 버전이다.

/usr/bin/python3 가 가리키는 파일을 3.6.11 로 변경해야 주로 사용하는 파이썬으로 바꿀 수 있다.

 

 


일단 먼저 --config 을 통해 먼저 등록되어있는 것이 있는지 확인해야한다고 한다.

sudo update-alternatives --config python3

update-alternatives: error: no alternatives for python3

위와 같은 에러가 뜨면 미리 설정되어있는 alternatives 가 없다는 뜻! 이제 등록하면 된다.

 

sudo update-alternatives --install <link> <name> <path> <priority>

위와 같이 특정 패키지의 여러 버전에 대해 alternatives 를 등록할 수 있다.

즉, PC 에 여러 버전의 파이썬이 설치되어있을 때 alternatives 는 주로 사용할 파이썬을 선택하는 방식으로 관리할 수 있다.

💡 <link> : 실행 파일 이름 (ex. /usr/bin/python)
      <name> : 패키지 이름 (python)
      <path> : alternatives 로 실제 연결할 실행파일 이름으로, 시스템에 설치한 패키지의 실행파일 이름
      <priority> : automatic 모드에서 자동으로 선택되는 우선순위. 높은 수가 더 높은 우선순위

 

 

나같은 경우에는 아래와 같이 설정하고 메세지가 떴다.

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python-3.6.11 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2

update-alternatives: using /usr/bin/python-3.6.11 to provide /usr/bin/python3 (python3) in auto mode

update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python3 (python3) in auto mode

 

그러고 나서 다시 --config 를 진행하면

$ sudo update-alternatives --config python3

There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                    Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.8       2         auto mode
  1            /usr/bin/python-3.6.11   1         manual mode
  2            /usr/bin/python3.8       2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python-3.6.11 to provide /usr/bin/python3 (python3) in manual mode

아래와 같이 뜨고 내가 원하는 2 번 을 쓴 뒤 enter 를 누르면 변경이 되는 것이다!

 

sudo update-alternatives --remove <name> <path>

alternatives 설정을 삭제하고 싶을 때는 위와 같이 사용할 수 있다

'Python 및 Torch 코딩 이모저모' 카테고리의 다른 글

HuggingFace OSError: You are trying to access a gated repo.Make sure to request access at 에러  (0) 2024.01.24
Parallelism  (0) 2023.11.07
HuggingFace 실습(PEFT) : 2. Train  (0) 2023.10.17
HuggingFace 실습(PEFT) : 1. Data  (0) 2023.10.15
GGML 개념 정리  (1) 2023.10.09
  1. 파이썬 설치하기
  2. configure 와 make
  3. 두 번째 시도
  4. update-alternatives
  5. symbolic link 란?
  6. update-alternatives : 우분투 패키지 버전관리
'Python 및 Torch 코딩 이모저모' 카테고리의 다른 글
  • HuggingFace OSError: You are trying to access a gated repo.Make sure to request access at 에러
  • Parallelism
  • HuggingFace 실습(PEFT) : 2. Train
  • HuggingFace 실습(PEFT) : 1. Data
섬섬옥수수
섬섬옥수수
컴공 AI 개발자가 되기 위한 노역입니다
섬섬옥수수
아날로그 인간의 컴공 되기
섬섬옥수수
전체
오늘
어제
  • 분류 전체보기
    • 백준 단계별 코딩 테스트
    • KB 논문 정리
    • Memory network 논문 정리
    • LLM 관련 논문 정리
    • Python 및 Torch 코딩 이모저모
    • Clustering 관련 논문 정리
    • 머신러닝 이모저모
    • 암호학

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • constituency tree
  • e5-v
  • ragas
  • 문제풀이
  • 티스토리챌린지
  • CUDA
  • 소프트웨어
  • vocabulary expansion
  • PEFT
  • 심재형
  • 하드웨어
  • 이화여대
  • eeve
  • 코딩테스트
  • 오블완
  • dependency tree
  • 백준
  • GIT
  • efficient and effective vocabulary expansion towards multilingual large language models
  • 인공지능융합기반시스템개론

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
섬섬옥수수
리눅스에 파이썬 새로운 버전 설치하기!
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.