준호씨의 블로그

python3 설치. 소스코드 빌드 해서 설치 하기 본문

개발이야기

python3 설치. 소스코드 빌드 해서 설치 하기

준호씨 2020. 9. 18. 00:09
반응형

python3을 소스코드 빌드해서 설치하는 방법에 대해 알아보겠습니다.

python2 소스코드 빌드 설치 방법은 다음 글을 참고하시기 바랍니다.

 

python2 설치. 소스코드 빌드 해서 설치 하기

참고로 python2는 지원이 종료되었습니다. 2020년 1월 1일 python2 지원 종료. 마지막 버전은 2.7.18 2020년 4월 20일 출시? www.python.org/downloads/에서 캡처한 Active Python Releases입니다. Python 2.7 버..

junho85.pe.kr

 

소스코드 압축파일은 https://www.python.org/downloads/ 에서 다운로드할 수 있습니다.

현재 가장 높은 버전인 3.8.5를 설치해 보겠습니다.

저는 편의상 터미널에서 받았습니다.

$ wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz

 

압축 풀기

압축을 푸는 방법도 여러 가지가 있겠지만 저는 편의상 tar 명령어를 이용해서 풀어주었습니다.

$ tar xvfz Python-3.8.5.tgz

 

 

빌드하고 설치 하기

$ cd Python-3.8.5/
$ ./configure && make && sudo make install

압축 푼 경로로 들어가서 configure, make, make install 하면 됩니다.

다만 기본 prefix 가 /usr/local/ 이기 때문에 python 커맨드는 /usr/local/bin/python 에 위치하게 됩니다.

만약 다른 경로로 설치하고 싶다면 configure 할 때 prefix를 지정해 주면 됩니다.

 

/program/Python-3.8.5에 설치하는 예제입니다.

$ ./configure --prefix=/program/Python-3.8.5 && make && make install

 

저는 /Users/junho85/Python-3.8.5에 설치했습니다.

$ ./configure --prefix=/Users/junho85/Python-3.8.5 && make && make install

install 할 때 root 권한이 필요 없는 경로라 sudo를 뺐습니다.

 

설치된 python이 실행되는지 확인해 봅니다.

$ /Users/junho85/Python-3.8.5/bin/python3 --version
Python 3.8.5

 

pip

python2와는 달리 pip가 기본 설치되어 있습니다.

$ ./python3 -m pip

Usage:
  /Users/junho85/Python-3.8.5/bin/python3 -m pip <command> [options]
...

 

pip로 requests모듈을 설치해 봅니다.

$ ./python3 -m pip install requests

pip3 명령어로도 설치할 수 있습니다.

$ ./pip3 install requests

테스트

간단히 https 요청을 해 보는 코드를 만들어 봅니다.

test.py

import requests
response = requests.get("https://httpbin.org/get")
print(response.text)

 

코드를 실행해 봅니다.

$ ./python3 test.py
{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.24.0",
    "X-Amzn-Trace-Id": "Root=1-5f60c3c1-09e41900a92b15505e520c40"
  },
  "origin": "14.47.185.136",
  "url": "https://httpbin.org/get"
}

 

엇? https는 ssl문제로 잘 안 될 줄 알았는데 잘 되네요? 예전에 리눅스에서 할 때는 잘 안되었는데 이번엔 잘 됩니다. OSX라서 잘 된 건지 어떤지 잘 모르겠네요.

그런데 리눅스 환경에서도 빌드해 봤는데 잘 되네요. 3.8에서 뭔가 개선되었을지도 모르겠습니다.

 

반응형
0 Comments
댓글쓰기 폼