기본 콘텐츠로 건너뛰기

[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로 가상환경을 만들었기 때문에 이것을 선택했다.


이상 클스 였습니다.

댓글

이 블로그의 인기 게시물

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[2024-10-19] iPhone, iPad에서 ChatGPT로 PDF 생성시 한글 깨짐 해결 방법

iPhone, iPad에서 ChatGPT로 PDF 생성 시 한글 깨짐 해결 방법

[2025-04-16(수)] OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각

OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각 안녕하세요. 클스 입니다. 4/15일자로 openai가 gpt-4.1 시리즈를 발표 했습니다. 현재는 api로만 사용가능합니다. 점차 웹/앱 사용자에게 오픈 될거라 생각 됩니다. 비용상 문제로 4.1-mini, nano를 사용해서 chatbot을 만들어 보고 있습니다. 4o 시리즈 보다는 확실히 빠르고, 답변의 정확도는 올라간 것 같습니다. 앤트로픽 클로드와 비교를 많이 하는데, 업무 시스템 혹은 AI 솔루션을 개발하는 입장에서는 어떤 생태계를 제공하는가가 주요한 결정 입니다. AI관련 인력을 충분히 보유한 회사의 경우는 어떤걸 사용해도 좋을 결과를 가지겠지만 일반적인 챗봇 개발 절차를 보면 다음과 같이 볼 수 있습니다. 1. 문서를 준비한다. 대부분 pdf, text, markdown 2. 문서를 파싱해서 vectordb에 올린다.     - 별도 벡터디비 구성 필요. 어떤 db를 선택할지 고민 필요     - 어떤 Parser를 사용할지, 텍스트 오버래핑은 얼마가 적당한지 고민 필요        (회사의 문서가 워낙 많고, 다양하면 하나하나 테스트 해서 좋은걸 선택하는 것이 어렵다)     - 유사도 측정은 어떤 알고리즘을 써야할지 고민 필요     - llamaindex도 고민해야 함. 3. RAG flow를 만든다.     - langchain을 쓸지, 각 AI 벤더에서 제공하는 sdk를 쓸지 고민 필요       (대부분 락인이 되지 않으려면 langchain을 사용하면 좋지만, 벤더에 특화면 기능 적용이 늦음) 4. 챗봇 UI 앱을 만든다.     - 답변이 text 로 구성되다 보니. 그래프, 이미지등 복합적인 컨텐츠를 재배치 하여 표현하기 상당히 어렵네요. (이건 제가 실력이 모자라서 .. 패스) ...