はじめに
「アルストロメリア、なんて」 うおおおおおおおお😭 nikkieです。
SpeechRecognition メンテナ活動の中で知ったことです。
(なお、3.13.0をリリースしました🎉)
目次
これまでのpipx run
PyPI(など)で配布されるPythonパッケージにはimport
せずにコマンドラインだけで使うツールも数多く存在します。
そんなツールを、開発者による仮想環境の管理不要で最新バージョンを使えるようにしてくれるのが、pipx run
!
このタダ乗りはヤバいです。
今すぐ全Python使いに導入してほしい!(なお後述のuvx
でもよいです)
恩恵を享受しているSphinxの例
pipx run
の代案としてはuvx
1。
これはuv tool run
の略です。
(uvがいいと思っている方は、uvx
もぜひ使いこなしてください〜)
GitHubではpipxが使いやすい
あくまで執筆時点ですが、GitHub ActionsやGitHub Codespacesではpipx
がプレインストールされています。
(今後uvが入ることも十分ありえます)
GitHub Actionsの例
これはpipx run
を使わない手はありません!
パッケージング手順をpipx run
でアップデート
SpeechRecognitionメンテナ活動では、PyPIへのリリースはGitHub Codespacesで行っています2
実行するツールは2つ
- build
- twine
今回PyPIのbuildを偶然確認したところ、pipx run
の例に気づきました!
https://pypi.org/project/build/1.2.2.post1/
私はpipx run
による仮想環境管理不要な開発の味を占めているので、これを使わない手はありません。
合わせてtwineもpipx run
で実行するようにしました。
今後の作業を楽にするためにMakefileに追加!
https://github.com/Uberi/speech_recognition/blob/3.13.0/Makefile#L8-L10
distribute: @pipx run build @pipx run twine check dist/*
どこかでpipx run twine upload
も追加しようっと(トークンの扱いが絡むのでサッとできず)
終わりに
パッケージングやPyPIへのリリースのために実行するbuild
やtwine
は、pipx run
で仮想環境管理不要で楽々できることを知りました。
pipx run
やuvx
がもたらしてくれたパラダイムや世界は本当に素晴らしいですし、全Python使いに恩恵を享受してほしいなと思います
P.S. twine checkで怒られた
Sphinxすきすき民としては涙目...
私Sphinxすきすき民すぎて、README.rstにSphinxのロール使ったら、PyPIでは受け付けられないらしく、twine checkで怒られた。(´・ω・`)ショボーンhttps://t.co/f9WtD1rOX8
— nikkie(にっきー) / にっP (@ftnext) 2024年12月29日
>directives and roles(略), are not allowed here
Sphinx 拡張はこの場所では使用を許されず
- uvにおけるtool https://docs.astral.sh/uv/concepts/tools/↩
- 自分のリポジトリのように自動化できるといいのですが、そのためにはowner Uberiさんに権限をいただく必要があるので、コミュニケーションを後回しにしちゃってるんですよね↩