기술 · 실용 가이드
Poetry가 다른 Python을 쓰나요? 환경을 바꾸기 전에 인터프리터를 증명하세요
셸, Poetry 프로젝트 환경, 실행 중인 sys.executable·prefix·base_prefix를 비교하고 프로젝트 제약과 설정 범위를 확인한 뒤 최소 수정만 적용합니다.

프롬프트가 맞아 보여도 Poetry는 캐시 환경, 활성 환경 또는 Poetry 설치에 사용된 인터프리터를 선택할 수 있습니다. 각 계층의 경로를 먼저 증명하고 잘못된 계층만 바꾸는 것이 안전합니다.
변경 전에 불일치를 기록하세요
처음부터 .venv를 지우지 마세요. 셸이 찾는 Python, Poetry 환경 경로와 실행 파일, poetry run 내부의 sys.executable·sys.prefix·sys.base_prefix를 기록합니다. 경로가 다르면 셸, Poetry 연결, 실제 실행 프로세스 중 어디가 다른지 구분할 수 있습니다.
세 경로를 별도 증거로 읽으세요
셸 python은 PATH 결과이고 poetry env info --executable은 프로젝트 연결이며 sys.executable은 실제 실행된 프로그램입니다. prefix와 base_prefix로 가상환경과 기반 인터프리터를 판별합니다. VIRTUAL_ENV는 가상환경을 사용하면서도 없을 수 있으므로 결정적 증거가 아닙니다.
프로젝트 버전 제약을 먼저 확인하세요
requires-python 또는 Poetry Python 제약과 후보 인터프리터의 정확한 버전을 비교합니다. Poetry가 모든 Python 버전을 자동 설치하지는 않습니다. 호환성을 확인한 뒤 전체 경로나 poetry env use 3.12로 선택합니다. 후보가 없다면 정상적인 플랫폼 도구로 먼저 설치하거나 노출합니다.
설정 범위와 기존 환경을 감사하세요
poetry config --list에서 virtualenvs.create, in-project, path, use-poetry-python과 CI 환경 변수를 확인합니다. 캐시 환경이 이미 있으면 in-project를 켜도 자동으로 .venv로 이동하지 않습니다. 삭제 전에 기존 경로를 기록합니다.
증거에 맞는 최소 수정만 하세요
셸 경로만 잘못되면 PATH나 버전 관리자를 고칩니다. Poetry가 잘못된 환경에 묶였으면 검증한 인터프리터로 env use를 실행합니다. 외부 활성 환경을 의도적으로 쓰면 Poetry는 별도 환경을 만들지 않습니다. CI 차이는 PATH, 활성 환경, 설정 변수, poetry run 출력을 비교합니다.
수정 후 검증하고 롤백 기록을 남기세요
같은 명령을 반복합니다. Poetry 실행 파일과 poetry run의 sys.executable이 목표 환경을, sys.prefix가 환경 디렉터리를, sys.base_prefix가 기반 인터프리터를 가리켜야 합니다. 최소 실패 명령, poetry check, 테스트를 실행하고 전후 경로를 보관합니다.
