Hacker News 의견
  • pyenv 사용에 대한 경고

    • pyenv는 Python을 사용자의 기계에서 컴파일하는 큰 단점이 있음.
    • 이 상황에서 발생할 수 있는 실패 모드가 매우 많음.
    • pyenv는 초보자가 Python 패키징 문제를 해결하기 위한 도구가 아니라, 설정을 표준화하기 위한 전문가용 도구임.
    • 사용자들이 pyenv로 인한 문제를 겪고 있지만, 그것을 인지하지 못하는 경우가 많음.
  • Python 프로그래머의 고통

    • Python 프로그래머들이 겪는 불필요한 어려움에 대한 놀라움.
    • 여러 버전의 Python을 설치해야 하는 것은 비이성적임.
    • Python 프로그램이 어디서나 작동하는 개념이 실용적이지 않음.
    • 모든 것이 취약하여 정확한 언어 버전 없이는 작동하지 않음.
    • 의존성 문제가 심각하여 패키지 관리자의 관리자가 필요한 상황임.
  • Python 프로그램을 안정적으로 유지하는 도구

    • Python 프로그램이 처음 작성했을 때와 동일하게 작동하도록 보장하는 도구들의 목록.
    • requirements.txt, pip, pipenv, pyenv, virtualenv 등 다양한 도구들이 있음.
  • Mise 도구 소개

    • Rust로 작성된 Mise는 asdf와 같지만 더 빠르고 기본적으로 shims가 없음.
    • 런타임을 병렬로 설치하고 필요한 플러그인을 다운로드함.
    • asdf나 pyenv보다 나은 도구로 사용될 수 있음.
  • ASDF의 장점

    • ASDF는 Python뿐만 아니라 Rust, Go, Node 등 여러 언어와 다양한 도구들을 지원함.
  • pyenv 사용 경험 공유

    • pyenv 사용 초기에는 문제가 없었지만, 여러 버전의 Python을 설치한 후 문제가 발생함.
    • pyenv 대신 python.org에서 Python을 다운로드하고 python<version> -m venv /my/virtual/env를 사용하여 가상 환경을 관리하는 것이 더 안정적임.
  • 개인적인 Python 관리 스택

    • pyenv로 Python 버전을 관리하고, 각 프로젝트마다 venv를 사용하여 새로운 가상 환경을 생성함.
    • 프로젝트 초기화와 의존성 관리는 Poetry를 사용함.
    • Dropbox를 사용하는 경우 .venv 폴더를 무시 목록에 추가함.
    • Pyenv는 Ubuntu에 필요한 모든 의존성을 수집한 후 잘 작동함.
  • Mise를 사용한 런타임 의존성 관리

    • Python, Node, Ruby, Terraform 등 대부분의 런타임 의존성을 동일한 방식으로 처리하는 mise 사용.
    • Python 가상 환경도 활성화할 수 있음.
  • macOS 워크플로우 공유

    • python.org에서 필요한 Python 바이너리를 다운로드하고, virtualenv를 사용하여 가상 환경을 설정함.
    • pyproject.toml과 pip-compile을 사용하여 프로젝트 관리.
    • Python 프로젝트 관리 공간에서 많은 변화가 있었지만, 이 워크플로우로 모든 것을 간과할 수 있었음.

이 상황에서 발생할 수 있는 실패 모드가 매우 많음.

여기가 너무 고통스러운 지점 같아요.