2 ポイント 投稿者 GN⁺ 2025-01-29 | 1件のコメント | WhatsAppで共有
  • ~/bin/ ディレクトリに自動化スクリプトをたくさん作成している。
  • uv とインラインスクリプトメタデータを知ってから、Python をより多く使うようになった。
  • ~/bin がパスに含まれているため、コマンドラインからスクリプトを直接実行したい。
  • そのために、次の shebang を使う: #!/usr/bin/env -S uv run --script
  • コマンドラインはこれで uv run --script を実行し、ファイルを引数として渡す。
  • uv は shebang を無視し、ファイルの残りを通常の Python ファイルとして実行する。
  • chmod a+x {filename} コマンドでスクリプトに実行権限を付与すると、Python で書かれたシンプルなコマンドラインスクリプトを使えるようになる。このスクリプトは依存関係を自動で処理する。

1件のコメント

 
GN⁺ 2025-01-29
Hacker Newsのコメント
  • env -S オプションを使うことで、shebang 行で複数の引数を渡せるようになる

    • Linux では shebang 行は単一の引数しか渡せないという一般的な認識を覆す
    • env -S は引数を個別に分割して実行するのに役立つ
  • uv を使って Python CLI ツールをインストールする方法を改善した

    • curl | sh スクリプトを使って簡単にインストールできるようにした
    • PyPI に uv を依存関係として持つ小さなインストール用パッケージを作成し、CLI ツールをインストールする
    • Python 仮想環境を管理する必要なく、独立した環境にインストールできるようにした
    • 複雑な依存関係の問題による GitHub Issue が減る
  • Prolog ファイルをシェルから実行できる方法を考案した

    • Prolog ファイルをシェルファイルとしても認識されるようにして実行可能にする
    • シェルでは 1 行目をコメントとして扱い、エラーを防ぐ
  • 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 パッケージマネージャーを使ってさまざまな言語と依存関係を管理できる

    • 単一ファイルで持ち運び可能なスクリプトを書ける