2 pontos por GN⁺ 2025-01-29 | 1 comentários | Compartilhar no WhatsApp
  • Crio muitos scripts de automação no diretório ~/bin/.
  • Depois de descobrir o uv e os metadados inline de script, passei a usar mais Python.
  • Como ~/bin está no PATH, quero executar os scripts diretamente pela linha de comando.
  • Para isso, uso o seguinte shebang: #!/usr/bin/env -S uv run --script
  • A linha de comando agora executa uv run --script e passa o arquivo como argumento.
  • O uv ignora o shebang e executa o restante do arquivo como um arquivo Python comum.
  • Depois de dar permissão de execução ao script com o comando chmod a+x {filename}, posso usar um script simples de linha de comando escrito em Python. Esse script gerencia automaticamente as dependências.

1 comentários

 
GN⁺ 2025-01-29
Comentários do Hacker News
  • O uso da opção env -S permite passar vários argumentos na linha shebang

    • Isso quebra a percepção comum de que, no Linux, a linha shebang só pode passar um único argumento
    • env -S é útil para separar e executar os argumentos individualmente
  • Foi melhorada a forma de instalar ferramentas de CLI em Python usando uv

    • Um script curl | sh permite uma instalação simples
    • Um pequeno pacote de instalação que depende de uv no PyPI é criado para instalar a ferramenta de CLI
    • Isso permite instalar em um ambiente isolado sem precisar gerenciar um ambiente virtual Python
    • Reduz issues no GitHub causadas por problemas complexos de dependências
  • Foi criada uma forma de executar arquivos Prolog a partir do shell

    • O arquivo Prolog também passa a ser reconhecido como arquivo de shell, tornando a execução possível
    • A primeira linha é tratada como comentário no shell para evitar erros
  • O artigo de Trey Hunner, "Lazy self-installing Python scripts with uv", traz mais exemplos e detalhes

  • É possível escrever scripts para pequenas tarefas usando mise

    • É apresentada uma forma de executar scripts Python com uv
  • Gerenciar ambientes Python com uv run python é conveniente

    • É possível rodar a REPL no ambiente do projeto sem precisar gerenciar .venv
    • Resolve problemas de instalação no sistema e permite executar diretamente dentro do projeto/ambiente
  • Há alguns pontos de atenção ao usar uv como executor de comandos, mas na maioria dos casos isso economiza tempo

    • Existe uma opção para resolver problemas de caminho ao executar arquivos .py diretamente
  • Usuários de TypeScript podem fazer algo parecido com Deno

    • Com deno run, é possível adicionar flags de permissão
  • O gerenciador de pacotes Nix pode ser usado para gerenciar várias linguagens e dependências

    • Dá para escrever scripts portáteis em um único arquivo