nikkie-ftnextの日記

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

Python開発環境

Pythonスクリプトをpipx runで実行した後に対話モードに入るには、PYTHONINSPECT環境変数を指定する

はじめに 『ぬ』という本をつくりました! nikkieです。 pipx runを使い倒していく中で見つけたtipsを取り上げます。 目次 はじめに 目次 前回:Inline script metadata(PEP 723)を一部サポートしたpipx pipx runにpython -i相当の動きをさせたい PYTHONIN…

登壇報告 | みんなのPython勉強会#103 にてPythonで仮想環境にライブラリをインストールするんだと(ただそれだけを)話しました #stapy

はじめに みんなのPython勉強会#103にご参加いただき、ありがとうございました。 nikkieです。 このエントリは、タイトルが全てです。 目次 はじめに 目次 みんなのPython勉強会#103 発表「Python開発環境 基礎」 5月のPyCon Kyushuでアップデートします! …

聞いて聞いて! 5/25(土)に鹿児島で開催の PyCon Kyushu 2024 に登壇します #PyConK

はじめに 宮尾美也さん、お誕生日おめでとうございました! nikkieです タイトルが全てエントリです。 2022年に引き続き、PyCon Kyushuでお話ししちゃいます! 目次 はじめに 目次 PyCon Kyushu 2024 KAGOSHIMA 私のトーク「venvによるPython開発環境の管理…

Pythonライブラリをpipで管理するとき、uninstallが私にはツラい

はじめに(なにか始まったぞ...) (この物語は、Python 3.11.8で作った仮想環境でお届けします) あるところにtransformersをインストールして開発を進めるPythonプロジェクトがありました。 % pip install transformers そのプロジェクトではrouge-scoreも…

uvお試し記:uv venvで作った仮想環境でpip installしてはいけません。uv pip installしましょう

はじめに 銃を抜いたからには 命を懸けろよ、nikkieです。 uvを試したところ、「思ってたのと、違う!」となった(=私が誤解していた)点のメモ書きです。 学び:uv付けたならuv付け通せよ(uvカットはできません) 目次 はじめに 目次 前提:Python Monthl…

Pythonスクリプトの未来。pipxが部分的にサポートしたInline script metadata(PEP 723)を触る

はじめに ナイスゲーム!! nikkieです。 今週のPyCoder's Weeklyから興味深かった記事に沿って手を動かしました。 未来は、意外と近くにある 目次 はじめに 目次 「Inline run dependencies in pipx 1.4.2」 PEP 723 – Inline script metadata (Status: Acc…

Pythonの仮想環境、最近は .venv という名前で作っています

はじめに バーンブレイバーン、アイうたじゃなくてボーボボ!! nikkieです Pythonの仮想環境、--upgrade-depsオプションを激推しするくらいヘビーユースしています。 私事で恐縮ですが、私nikkieは今般、仮想環境のお相手(=実体のディレクトリ)の名前を …

Pythonのvenvの--upgrade-depsオプションは、どこから来てどこへ行くのか

はじめに ぶっ飛ばせ!! nikkieです 先日言語処理学会でPython仮想環境の話題があり、以下のツイートに多くの反響をいただきました。 情報量を増やした記事を書きます。 ただし、すぐ役に立つ部分で言うとツイートを超える情報はなく、なぜこのオプションが…

続・Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでmypyを流す(strictモードで流すための対応案)

はじめに START THE DREAM nikkieです。 先日のRyeのworkspaceとmypy(pytest)の記事のアップデートをお届けします。 mypyをstrictモードで流すために対処せねばならぬ点がありました。 目次 はじめに 目次 前回までの、Ryeのworkspaceのルートで流すシリー…

Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでpytestを流す(ModuleNotFoundErrorを--import-mode importlibで解消)

はじめに 郁原ゆうさん1、お誕生日おめでとうございます。nikkieです。 Ryeを使った開発をきっかけに、pytestのドキュメントに当たりました。 なぜpytestがModuleNotFoundErrorを送出するのか、少し理解が深まったように感じています(sys.pathが絡んでるん…

Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでmypyを流す(error: Duplicate module named "..."を--explicit-package-basesで解消)

はじめに ごみけついきたい、nikkieです。 Ryeを使った開発をきっかけに、mypyのドキュメントにあたりました。 mypyにディレクトリのパスを渡した時にどう動いているか、少し理解が深まった感覚です1。 目次 はじめに 目次 Ryeのworkspace workspaceの例 リ…

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

はじめに ミリシタ新イベ、転天革命じゃん... nikkieです。 今回はRyeに慣れるために素振りしたクソライブラリをクソDockerイメージにしていきます! 目次 はじめに 目次 前提:Ryeに慣れるために素振りしたクソライブラリ 結論 Dockerイメージビルドのため…

pipxで管理するpip-toolsを使って、プロジェクトの仮想環境に依存ライブラリをインストールする(pip-syncの--python-executable引数が必要)

はじめに ‍♂️1 nikkieです 普段Pythonで開発するときはpipのお世話になっていますが、少し前からpipxなるものの存在を耳にしていました。 どんなツールか知ろうと、今回手を動かしています 目次 はじめに 目次 pipxとは pipxのインストール(macOS) pipxでB…

Q: Pythonではパッケージ管理ツールpipを含まない仮想環境にパッケージをインストールできる。◯か☓か

答えは◯(マル) この記事では、pipを含まない仮想環境にパッケージをpip installします。 「pipを含まない仮想環境」についてはこちらをどうぞ pipコマンドがないですが、pip installします。 大丈夫ですか? ついてこれてます? 書いている私も「正気か?」…

Q: Pythonではパッケージ管理ツールpipを含まない仮想環境を作ることができる。◯か☓か

答えは◯(マル) pipを含まない仮想環境は、作れます! なお、この知見は「へぇ」レベルで、Pythonを使っていく上では役に立たないと思います(ここで引き返してもええんやで)。 目次 答えは◯(マル) 目次 標準ライブラリのvenvの場合 サードパーティライブラ…

pip-compile-multi体験記:小さく分けたrequirementsファイルたちを元に、環境をlockして管理できる!

はじめに 解釈一致!! nikkieです 先日pip-toolsを触りましたが、 関連するpip-compile-multiを今回触りました。 目次 はじめに 目次 pip-compile-multiとは pip-compile-multiの使い方 自作ライブラリに導入して手を動かす pip-compile-multi ドキュメント…

pip-tools体験記:pip-compileで作ったrequirements.txtの通りに環境が同期(pip-sync)する!

はじめに 1日目、nikkieです。 Pythonの依存管理ツールとして名前だけ聞いていたpip-toolsを触りました。 目次 はじめに 目次 pip-toolsとは 前回のpip-tools requirements.inというファイル Ryeが使っている pip-toolsの使い方:2つのコマンドはどう使う? …

素振りの記:Ryeに慣れるために、Pythonで自分だけのクソライブラリを作る

はじめに エミリーちゃん、かわいいいいいいいいいいいいいいいいいいい! nikkieです(←落ち着いて) Pythonパッケージ管理界のルーキー Ryeを素振りしました。 目次 はじめに 目次 Ryeって、何よ? ばんくしさん発表資料(みんなのPython勉強会)より Rye…

XP祭り2023「小さなテクニカルプラクティスのワークショップ」参加者向け Python環境構築案内 #xpjug

はじめに 間に合わないよ〜1 nikkieです。 9/30(土)のXP祭り2023にて、ワークショップを実施します!2 ワークショップで必要になるPython環境についてこの記事で案内します 目次 はじめに 目次 小さなテクニカルプラクティスのワークショップ GitHub Codespa…

pypa/gh-action-pypi-publish がとっても便利! リリースを作るだけでPyPIにライブラリを公開できます

はじめに ミリアニ一幕上映中! nikkieです。 オススメのGitHub Actionを共有です。 すごいんだよ、pypa/gh-action-pypi-publish! このActionを知って以来、PyPIへのライブラリ公開の大変さが劇的に軽減されました(わっほーい!) 目次 はじめに 目次 PyPI…

PyPIに公開するライブラリ開発で同じGitHub Actions定義を毎回書くことに気づき、実験的に ftnext/cookiecutter-develop-pypackage はじめました🍪

はじめに ミリオンライブ!の劇場上映、めっちゃよかったあああ!! nikkieです。 自分の開発で繰り返し書くファイルを、Cookiecutterでコマンド一発で生成できるようにするのをお試し中という話です(※やってみるけどうまくいかないかもしれません) 目次 …

pyenv + venv の呼吸 弐の型 taskipy (ftnext/cookiecutter-taskipy はじめました🍪)

はじめました! にっきーの「っきー」はCookiecutterの「っきー」1。nikkieです。 先日Cookiecutterの素振りをしました。 Cookiecutterテンプレートの作り方が分かったので、taskipy用のテンプレートを公開しました!! 目次 はじめました! 目次 taskipyと…

nikkieとCookiecutter 第1話 🍪 「テンプレートを使う。そしてチュートリアルに沿って作る」

はじめに 久美子部長、お誕生日おめでとうございます!1 nikkieです2。 クッキーカッター(Cookiecutter)ってあるじゃないですか〜。 わたし〜、にっきー(nikkie)じゃないですか〜。 ぜったい相性いいと思うんですよね〜3 というわけで触ってみました! …

モノレポでの開発なのですが、pip 20.3からの新リゾルバの挙動に悩まされています(1つの仮想環境に全部をeditable installできないよ〜)

はじめに お助けプリーズ nikkieです 今さらの話ではあるのですが、「pipの動きが変わったなー」と思っていた事象がどうやら新リゾルバに起因するらしいとこのたび分かりました。 ラバーダッキングも狙って、何に困っているかを書き出してみます。 目次 はじ…

Python開発環境共有、今の私はtaskipyで一連のコマンドをつないでいます

はじめに みんなすげーPython開発環境持ってていいなア!! じゃあ、開発環境バトルしようぜ! Python開発環境バトル!! nikkieです。 最近の開発環境の共有です。 先日素振りしたtaskipyを実戦投入し始めています。 個人的にイチ推しのポイントを共有して…

venvによる仮想環境は--clearオプションを渡して初期化できます(#Python実践レシピ を勝手に補足)

はじめに 秘密はね、最後に明かされるんだよ。nikkieです。 この1月に出た書籍『Pythonエンジニア育成推進協会監修 Python実践レシピ』(以下、Python実践レシピ)を読み始めました。 venvによる仮想環境について、「この書籍にはない情報を知っているのかも…

GitHub ActionsでPythonのコードを整える

はじめに 聞いて聞いて! isortって「I sort」(私が並べる)なんだよ! nikkieです。 Pythonのimport文をアルファベット順に並べ替えてくれるisort、https://t.co/cwwhd4aRy9i sort your imports, so you don't have to.(私が並べ替えるから、あなたはしな…