nikkie-ftnextの日記

イベントレポートや読書メモを発信

Python開発環境

pipxやuvで、開発者がPython仮想環境を作らない開発 〜Streamlitを例に〜

はじめに 「仮想環境を開発者が作る必要がほとんどなくなっています。」 nikkieです。 この記事は「Pythonの開発で(特定のライブラリ)の入った仮想環境がどこにあるか分からなくなるんだよね」への私なりのアンサーです。 私は仮想環境をツールに委ねるこ…

HatchでPythonプロジェクト開発体験記(テスト篇)

はじめに 東ルビ、ありがとうございました!1 nikkieです。 先日emi-reをリリースしました。 この開発でHatchを使っての雑感を綴ります。 今回はテストに関するものになります 目次 はじめに 目次 HatchでPythonプロジェクト開発 Hatchでテスト実行 ランダム…

Python環境構築DASH村。python-build-standaloneのおかげで、curlかwgetだけあれば余裕です✌️

はじめに 「「「「けど」」」」 nikkieです。 知的好奇心を満たすための手作り、再び開催です!1 ※これは学習用途なので、実際にはHatchやuvなどpython-build-standaloneを中で使っているツールを使ってください! 目次 はじめに 目次 python-build-standalo…

メンテナ記 | pipx run(やuvx)でパッケージングも楽々だ〜!🫶

はじめに 「アルストロメリア、なんて」 うおおおおおおおお nikkieです。 SpeechRecognition メンテナ活動の中で知ったことです。 (なお、3.13.0をリリースしました) 目次 はじめに 目次 これまでのpipx run GitHubではpipxが使いやすい パッケージング手…

GitHub Actions、今やsetup-pythonからpip installを書く必要はないんだ。pipx runだけでいいんだ!

はじめに 雛様浴衣かわああああああ(今週のアニメ アオのハコ感想) nikkieです。 SpeechRecognitionメンテナ活動からの学びです。 目次 はじめに 目次 結論:こんなプルリクエストをいただいたのです! GitHub Actionsはpipxが使えます Ubuntu Windows mac…

uvx(やpipx)により、Python製CLIツールも開発者による仮想環境管理が不要になってるじゃん! Sphinxを例に

はじめに えびふりゃー・みそかつ・小倉トースト・みゃ〜 nikkieです inline script metadata(PEP 723)により、Pythonスクリプトについては開発者が仮想環境を管理しなくてもよくなっています1 さらにこのたびuvxによってPython製CLIツールも開発者が仮想…

手元のPythonスクリプトをスタイルガイド(PEP 8)に合わせたいあなたへ

はじめに 楳図かずお先生なくして、アイの歌声を聴かせてなし。ご冥福をお祈りします。 nikkieです。 Pythonコミュニティで広く採用されているコーディング規約に沿ったPythonスクリプトを書きたい方に捧げます。 目次 はじめに 目次 この記事のきっかけ PEP…

Ruffは format と check --fix の2つのコマンドでフォーマットする (Ruff 0.7.2)

はじめに Act-4のダイジェスト 映像 ラッシュ、泣いちゃう... nikkieです。 Astral社によるRust製のPythonリンタ兼フォーマッタ、Ruffのフォーマッタ部分をドキュメントで確認しました1。 % uv --version uv 0.4.27 (Homebrew 2024-10-25) % uvx ruff --vers…

uvは0.4.27からDependency Groups(PEP 735)をサポートしました

はじめに やけにカラスが騒がしいな... nikkieです シェイクス丸‍⬛に告げられ、uv 0.4.27のリリースを知りました。 た だ ち に ア プ リ 起 動 !! 目次 はじめに 目次 uv 0.4.27 「PEP 735の[dependency-groups]をサポート」 uvコマンドでDependency Grou…

uv 0.4.11からuv syncが --no-editable をサポート! 自作Pythonライブラリを含んだDockerイメージビルド手順を再改訂

はじめに 虹ヶ咲7th NEW TOKIMEKI LAND、楽しかったー! nikkieです。 uvでライブラリとして環境構築(uv init --lib)したPythonプロジェクトについて、Dockerイメージをビルドする記事を再び更新します。 このたびuvのドキュメントに--no-editableを見つけ…

add-apt-repositoryを使わずに最新でないPythonをインストールする 〜UbuntuのDockerイメージを例に〜 (『ハイパーモダンPython』を勝手に補足)

はじめに モバミちゃん...ラーメンだよ... nikkieです Today(※最近) I learnedです。 最近は『ハイパーモダンPython』きっかけの学びに満ち溢れています! 目次 はじめに 目次 『ハイパーモダンPython』より、UbuntuにPythonをインストール add-apt-reposi…

pipを含まない仮想環境に、グローバルなpipでパッケージをインストールする(『ハイパーモダンPython』読書メモ)

はじめに 祝・ミリアニ1周年! nikkieです。 以前、pipを含まない仮想環境にパッケージをインストールしました1 『ハイパーモダンPython』を読んでいて、別解を知りました。 目次 はじめに 目次 pipを含まない仮想環境を作る 『ハイパーモダンPython』より、…

pipxはinstallよりもrunを積極的に使っていけばいいのか!(『ハイパーモダンPython』読書メモ)

はじめに らんらんるー。nikkieです。 Today(※最近) I learnedです。 『ハイパーモダンPython』から私はpipxを誤解していたことに気づきました 目次 はじめに 目次 私の誤解:pipx installを主に使う。runはいつ使う? 『ハイパーモダンPython』2.2「runな…

#PyConJP2024 Day1、PEP 723(inline script metadata)は天才!と愛を叫んできました #pyconjp_1

はじめに 1日目お疲れさまでした!nikkieです。 登壇報告エントリです 目次 はじめに 目次 PEP 723(Inline script metadata)が拓く世界。Pythonスクリプトに必要な仮想環境をツールにおまかせできるんです! 発表後記 関連エントリ おまけ:発表中のテンシ…

PEP 723をサポートしたツールがどんどん登場するので、私も独学目的で実装しました(バージョン 0.0.1公開!)

簡易版でお知らせします。 PEP 723(inline script metadata)のごくごく一部をサポートする実装をして、公開しました 目次 目次 PEP 723を実装しました! 実装してみて:metadataのパースはPEPより単純化できたみたい ただし、オススメはこちらのツール PEP…

inline script metadataをサポートしたツールが仮想環境を再利用する様子を、振る舞いやソースコードから調べる

はじめに 未完成のポラリス、ありがとう〜!! nikkieです inline script metadataをサポートしたツール(pipx, uv, Hatch, PDM)について、より使い倒すためにまたまた調べます。 目次 はじめに 目次 ツールは仮想環境をどのくらいの頻度で一から用意する?…

inline script metadataをサポートしたツールでスクリプトを実行したときにもPythonの対話モードに入りたい! 環境変数 PYTHONINSPECT が有効か調査しました

はじめに 真珠星ちゃんとなるちゃん、もうギスギスだよ...(でもかわいい) nikkieです。 inline script metadataをサポートしたツール(pipx, uv, Hatch, PDM)について、より使い倒すために調べます。 目次 はじめに 目次 私はPythonスクリプトを対話モー…

Hatchはv1.10からinline script metadataをサポートしています!

はじめに 朗読イベントありがとう〜〜!!天才! nikkieです。 このブログでたびたび取り上げているPythonのinline script metadata。 このたびHatchもサポートしていたことを知りました。 目次 はじめに 目次 Hatch v1.10.0 (2024/05リリース) inline scrip…

DjangoでWebアプリを作るPythonプロジェクトをPoetry / uv / Hatchで管理したら

※この記事はDjangoもくもく会: 4回目の成果発表です。 はじめに 叛逆のニジガサキってボーボボだったんだ... nikkieです。 Pythonには依存ライブラリ管理ツールが、たっくさんあります。 DjangoでWebアプリを作るときのツールの選択肢を増やしたく、素振りし…

uvはinline script metadataを書ける! Guidesの「Running scripts」を読んだメモ

はじめに 左下から来るぞ! nikkieです。 このブログでたびたび取り上げているPythonのinline script metadata。 今回はuvのドキュメントを読みます 目次 はじめに 目次 inline script metadata uvはinline script metadataを書いてくれる! Guides「Running…

改訂版:uv init --libで環境構築して開発中の自作Pythonライブラリを含んだDockerイメージをビルドする

はじめに 絵羽模様 nikkieです。 先日の、uvでライブラリとして環境構築したPythonプロジェクトのDockerイメージの記事を更新します。 コメントいただき、uvだけで達成できました。 ありがとうございます! 目次 はじめに 目次 uv init --libで環境構築して…

uv init --libで環境構築して開発中の自作Pythonライブラリを含んだDockerイメージをビルドする

はじめに 絵羽模様 nikkieです。 uvで環境構築したPythonプロジェクトのDockerイメージの作り方を考えていきます。 今回はライブラリ編です 目次 はじめに 目次 uvのライブラリ 結論 思想の対立:私 vs uv 小さいサイズのDockerイメージを作りたい私 uvはラ…

uv init --appで環境構築して開発中の自作Pythonアプリケーションを含んだDockerイメージをビルドする

はじめに はぁ〜♪ nikkieです。 uvで環境構築したPythonプロジェクトのDockerイメージの作り方を考えていきます。 今回はアプリケーション編です 目次 はじめに 目次 前提:uvのアプリケーション 結論 Dockerイメージへの私のこだわり uvで管理するアプリケ…

uv 0.4.0 リリースノートより、Pythonプロジェクトの扱いの変更。再配布可能にするかを--appや--libフラグで指定する

はじめに 美咲ちゃのおてて、ふわっふわ... nikkieです。 先日 uv 0.3.0 を紹介しましたが、そのすぐ後に 0.4.0 が登場! 0.4.0のリリースノートより、興味を持った点を調べました。 目次 はじめに 目次 uv 0.4.0 リリースノート 百聞は一見に如かず 「Creat…

私見:Pythonプロジェクトの3類型(ver 2024.09)

はじめに (私はアイドルに)なれないの? nikkieです。 Pythonの開発環境に興味を持ち、直近3ヶ月くらいこのブログでたびたびアウトプットしてきました。 Pythonの開発環境は、仮想環境 + その管理を引き受けるツールと捉えており、ツールは乱立しているよ…

9/27(金)の #PyConJP2024 にてPEP 723(Inline script metadata)の話をします。Pythonスクリプトの仮想環境管理不要な時代へ、ようこそ #pyconjp

はじめに 新時代はこの未来だ 世界中全部変えてしまえば1 nikkieです。 タイトルが全て!なお知らせ記事です。 目次 はじめに 目次 9/27(金)28(土)は、PyCon JP 2024のカンファレンス 9/29(日)はDeveloper & Community Sprint 採択いただきました PEP 723(I…

uv 0.3.0リリース、Pythonプロジェクト管理ツールのすがた! uv、お前、Ryeを屠るのか...

はじめに 黄前久美子部長、お誕生日おめでとうございます!! nikkieです1 今週のPyCoder's Weekly (#643)を読んでいたところ、めちゃ驚く記事が飛び込んできました。 この記事を読んでぶち上がったテンションでの走り書きです。 uv導入のための検証兼素振り…

poetry.lock をもとに requirements.txt を生成する(poetry export)

Poetryについての Today(※最近) I learned 2ネタ目です1 Poetryを使ったプロジェクトでアプリケーションをDockerイメージにするとき、イメージからはPoetryを除きたい派なのですが(poetry run想定してなくて、ビルド中のみ使う)、poetry exportでpoetry.…

開発者が .venv という名前の仮想環境を作っていたら、Poetryはそれを使う

Poetryについて Today(※最近) I learnedです Poetry、開発者が作った仮想環境があれば、.venvという名前に限るけど、使ってくれるんだなhttps://t.co/4FhBrsyluF>If not set explicitly, poetry by default will create a virtual environment under {cach…

pip freezeして作られたであろう requirements.txt からdirectな依存を pipdeptree で取り出す

はじめに 盂蘭盆会 nikkieです。 Pythonの環境、特に依存ライブラリを再現する経験を最近しました。 目次 はじめに 目次 Pythonの伸びしろ:requirements.txt 2種類の依存:direct と transitive pipdeptree でdirectな依存を取り出す 終わりに 関連記事 Pyt…