2023년 10월 21일 토요일

[2023-10-21] Python 3.12.0 버전 발표(Release Date: Oct. 2, 2023)

 

Python 3.12.0 버전 발표(Release Date: Oct. 2, 2023)

요약 : 파이썬 3.12, f 문자열 개선 등 개발 편의성 향상

Release Note

python 3.11 과 3.12 의 주요 기능 비교

* f 문자열은 복잡한 문자열 출력을 위한 문자열 형식화 기능의 하나다. 
  문자열 앞에 알파벳 f를 붙인 후 중괄호({}) 안에 공백 크기 지정 등 
  고급 형식지정 문자열을 입력해 바로 사용할 수 있다.

* 신규 버전에서는 기존에 지원하지 않던 여러 줄의 표현식, 주석, 백슬래시 및 유니코드 이스케이프 시퀀스를 
  처리할 수 있는 기능이 추가됐다.

* 표준라이브러리도 효율적인 활용을 목표로 수정이 이뤄졌다. 
  정리, 유용성 및 정확성에 중점을 둔 이번 수정작업에서 디스트유틸(distutils)패키지 등 더 이상 사용하지 않는 API는 제거되며 
  패스리브(Pathlib) 클래스가 서브클래싱을 지원하며, 명령줄 인터페이스가 모듈 SQLite3에 추가됐다.

* 더불어 성능 개선 작업을 통해 내장 함수의 하나인 이즈인스턴스(isinstance)는 약 2~20배 속도 향상 됐으며, 
  비동기 I/O(asyncio) 패키지도 일부 벤치마크에서 약 75% 빨라진 것으로 나타났다. .

* 파이썬 3.12버전은 인터프리터별 전역 해석기 잠금(GIL)을 적용해 여러 파이썬 스레드가 동시에 실행되는 것을 방지한다. 
  이를 통해 여러 CPU 코어를 보다 효율적으로 사용할 수 있는 하위 인터프리터 생성이 가능하다.

* 이 밖에도 리눅스 커널 성능 측정 도구(perf)에서 C파이썬(CPython)을 지원하는 등 
  성능 개선 및 편의성 지원을 위한 업데이트가 이뤄졌다.

* 출처 : https://zdnet.co.kr/view/?no=20231004094411
  • 공식 발표 내용
    * More flexible f-string parsing, allowing many things previously disallowed (PEP 701).
    * Support for the buffer protocol in Python code (PEP 688).
    * A new debugging/profiling API (PEP 669).
    * Support for isolated subinterpreters with separate Global Interpreter Locks (PEP 684).
    * Even more improved error messages. More exceptions potentially caused by typos now make suggestions to the user.
    * Support for the Linux perf profiler to report Python function names in traces.
    * Many large and small performance improvements (like PEP 709 and support for the BOLT binary optimizer), delivering an * estimated 5% overall performance improvement.
    
    

pyenv로 python 13.2.0 설치하기

$ pyenv install --list
---
  3.11.1
  3.11.2
  3.11.3
  3.11.4
  3.11.5
  3.11.6
  3.12.0
  3.12-dev
  3.13.0a1
  3.13-dev
---

$ pyenv install 3.12.0
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.12.0.tar.xz...
-> https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
Installing Python-3.12.0...
python-build: use readline from homebrew
python-build: use ncurses from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.12.0 to /Users/keulstar/.pyenv/versions/3.12.0
---

$ pyenv virtualenv 3.12.0 py312
$ pyenv local py312      : 로그인 사용자의 파이썬 버전 설정 
$ pyenv global py312     : 전체 사용자의 파이썬 버전 설정 
$ pyenv activate py312   : 현재 세션의 파이썬 버전 설정

vscode에서 python interpreter 설정하기 

shift + cmd + p 를 눌러서 아래를 실행하고,
입력란데 python select 하고 Python: 인터프리터를 선택한다.



mac에 설치된 python 목록이 아래와 같이 나온다. 원하는 버전을 선택하면 된다.

나는 py312로 가상환경을 만들었기 때문에 이것을 선택했다.


이상 클스 였습니다.

라벨: , , , , ,