RSS 행성 파이썬
팔로우
브렛 캐넌: PEP 832 -- 가상 환경 검색을 작성한 이유
VS Code와 같은 도구는 프로젝트의 Python 환경을 식별하는 데 어려움을 겪으며, 이는 코드 실행 및 종속성 분석과 같은 필수 기능에 장애가 됩니다. 이러한 문제는 편집기가 프로젝트가 사용하는 워크플로 도구를 감지하거나 가상 환경이 어디에 있는지 파악할 보편적인 방법이 없기 때문에 발생합니다. 프로젝트가 처음 열릴 때 VS Code는 사용자가 Hatch, Poetry, uv 또는 사용자 지정 솔루션을 선호하는지 안정적으로 결정할 수 없습니다. 현재 방법은 종종 pyproject.toml을 기반으로 추측에 의존하는데, 이는 지원되는 도구의 정확한 목록을 유지해야 합니다. 또한 환경을 전역적으로 저장하거나 공유 환경을 허용하는 워크플로 도구는 사용자가 수많은 환경을 관리할 때 식별을 복잡하게 만듭니다. .venv 디렉토리에 로컬로 저장된 환경의 경우 간단한 솔루션이 존재하며 기본 기능을 제공합니다. 그러나 프로젝트 외부의 환경이나 여러 환경이 존재하는 경우 제안된 .python-envs와 같은 전용 파일에 해당 경로를 나열할 수 있습니다. 도구 선호도를 해결하기 위해 pyproject.toml의 [workflow] 테이블을 제안하여 도구가 서버 모드로 실행되는 방식을 정의하고, Workflow Server Protocol을 기반으로 JSON-RPC를 통해 통신할 수 있도록 합니다. 이 프로토콜을 통해 도구는 편집기에 사용 가능한 환경에 대한 정보를 제공하고 해당 생성을 관리할 수 있습니다. 대안으로는 필요한 환경 세부 정보를 반환하는 CLI 도구에 대한 명명 규칙을 설정하는 것이 있습니다. 저자의 동기는 경험 수준에 관계없이 모든 Python 사용자가 수동 환경 관리를 최소화하여 설정을 단순화하려는 욕구에서 비롯됩니다. 이 노력은 VS Code에 국한되지 않고 다른 편집기에서도 채택될 수 있는 솔루션을 목표로 합니다. 이러한 표준화된 통신 프로토콜은 워크플로 도구를 단순한 미들웨어 이상으로 끌어올려 더 넓은 편집기 지원을 가능하게 하고 맞춤형 확장 개발을 줄일 것입니다.