2P by neo 30일전 | ★ favorite | 댓글 1개
  • uv를 shebang 라인으로 사용하기

  • ~/bin/ 디렉토리에 자동화 스크립트를 많이 생성함.

  • uv와 인라인 스크립트 메타데이터를 발견한 이후로 Python을 더 많이 사용하게 됨.

  • ~/bin이 경로에 있으므로 명령줄에서 직접 스크립트를 실행하고자 함.

  • 이를 위해 다음과 같은 shebang을 사용함: #!/usr/bin/env -S uv run --script

  • 명령줄은 이제 uv run --script를 실행하고 파일을 인수로 전달함.

  • uv는 shebang을 무시하고 나머지 파일을 일반 Python 파일로 실행함.

  • chmod a+x {filename} 명령어로 스크립트에 실행 권한을 부여한 후, Python으로 작성된 간단한 명령줄 스크립트를 사용할 수 있게 됨. 이 스크립트는 자동으로 종속성을 처리함.

Hacker News 의견
  • env -S 옵션을 사용하여 shebang 라인에서 여러 인자를 전달할 수 있게 됨

    • Linux에서 shebang 라인은 단일 인자만 전달 가능하다는 일반적인 인식을 깨뜨림
    • env -S는 인자를 개별적으로 분리하여 실행하는 데 유용함
  • uv를 사용하여 Python CLI 도구를 설치하는 방법을 개선함

    • curl | sh 스크립트를 사용하여 간단하게 설치 가능하게 함
    • PyPI에 uv를 의존성으로 하는 작은 설치 패키지를 만들어 CLI 도구를 설치함
    • Python 가상 환경을 관리할 필요 없이 독립된 환경에 설치 가능하게 함
    • 복잡한 의존성 문제로 인한 GitHub 이슈가 줄어듦
  • Prolog 파일을 쉘에서 실행할 수 있는 방법을 고안함

    • Prolog 파일을 쉘 파일로도 인식되게 하여 실행 가능하게 함
    • 쉘에서 첫 번째 라인을 주석으로 처리하여 오류를 방지함
  • Trey Hunner의 "Lazy self-installing Python scripts with uv" 기사에서 더 많은 예시와 세부사항을 제공함

  • mise를 사용하여 작은 작업을 위한 스크립트를 작성할 수 있음

    • uv를 사용하여 Python 스크립트를 실행하는 방법을 소개함
  • uv run python을 사용하여 Python 환경을 관리하는 것이 편리함

    • .venv를 관리할 필요 없이 프로젝트 환경에서 REPL을 실행할 수 있음
    • 시스템 설치 문제를 해결하고, 프로젝트/환경 내에서 직접 실행 가능함
  • uv를 명령어 실행기로 사용할 때 몇 가지 주의할 점이 있지만, 대부분의 경우 시간 절약에 도움을 줌

    • .py 파일을 직접 실행할 때 경로 문제를 해결하기 위한 옵션이 있음
  • TypeScript 사용자들은 Deno를 사용하여 유사한 작업을 수행할 수 있음

    • deno run을 사용하여 권한 플래그를 추가할 수 있음
  • Nix 패키지 관리자를 사용하여 다양한 언어와 의존성을 관리할 수 있음

    • 단일 파일로 휴대 가능한 스크립트를 작성할 수 있음