読み飛ばしてください おはようございます、しなもんです。 Pythonの公式ドキュメントを読んでたら、なんか知らない便利機能がたくさん出てきました。 なんだこれ。 というわけでまとめてみました。 参考になれば幸いです。 f-stringsの拡張機能 f-strings、便利ですよね。大好きです。 そんなあいつには裏技があるみたいです。 デバッグ用の=演算子 Python 3.8以降、f-stringの中で=演算子を使用することで 変数名とその値を同時に表示できるらしい。
はじめに Pythonは柔軟性が高く、初心者にも適したプログラミング言語ですが、その一方で速度面では他の言語に劣るとされています。本記事では、先月ピッツバーグで開催されたPyCon US 2024で紹介されたPythonの高速化技術について詳しく解説します。 Pythonの速度問題 「Pythonはランタイムにコストを払う」という古い格言が示す通り、Pythonは解釈型言語であり、実行時に多くの処理を行うため速度が遅くなることがあります。Pythonはソースコードを効率的なバイトコードに変換し、それを直接実行することで動作します。このプロセスには多くの間接処理が含まれ、単純な命令でさえも多数のCPU指示に分解されます。例えば、二つの数値を足すだけでも500以上の命令が実行されることがあります。 高速化のためのコンパイル技術 Cythonによる最適化 PyCon 2024でのSaksham
経緯 ごく稀に、プロダクト内に書かれた文言の修正をすることってありますよね。 htmlやテンプレートファイルに文字列が記載されていれば、普通にgrepするなり、sedで一括置換できたりします。 問題は画像です・・・! 画像の中に置き換えなければいけない文字があることもあると思いますが、画像を目視で見ないと分からないですよね。 過去の経験的にも、あとから置き換えなければいけない文字を含む画像が見つかって、修正する・・・みたいなことを何度か経験したことがあります。 (本来は、画像内にあまり文字を書くのは良くないと思うのだけど・・・説明ページとかだと仕方ない場合もありますよね。) 画像内をgrepできたらいいのに、と思ったのでOCRを活用して画像内の文字列をテキスト化し、その中に調べたい文字列があるかをチェックするツールを作ってみたので紹介します。 OCRとは OCR(Optical Chara
積ん読宣言エントリです。 ざっと一読した感想を述べています。 目次 目次 エムスリーテックブック5(技術書典15) 第6章 「ゼロから作る自作 Python Package Manager 入門」 組合せてパッケージマネージャー 終わりに P.S. 最近のばんくしさん エムスリーテックブック5(技術書典15) 2023年11月に頒布されました 第6章 「ゼロから作る自作 Python Package Manager 入門」 上記のエムスリーさんのエントリより この課題がどこから来ているのか、どのように解消されようとしているのか、そして開発者としてどのように貢献していけるのかを、実際にPackage Managerのlock、install、run、build、uploadのようなサブコマンドを実装して行くことで知っていく章になります。 ばんくしさんには2023年10月のみんなのPython
作業メモ。モダン Python 速習。 AI 周りのツールを動かしていたら TypeScript だけでやるには無理が出てきたので、久しぶりに Python の環境構築をする。 具体的には TestGen LLM を動かしたい。 Python はたまに触るけど、基本 2.x 時代の知識しかない。 基本的にこの記事を読みながら、細かいアレンジをしている。 追記 rye が ruff と pytest を同梱してるので rye fmt, rye check, rye test で良かった uvicorn を叩くより、 fastapi-cli を使って起動したほうが良さそうので変更 基本方針: Rye に全部任せる 良く出来てると噂に聞いたので、 rye に任せる。 自分が Python が苦手な点は pip を下手に使うと環境が汚れていく点で、基本的に rye で閉じて管理させる。システムの
Pythonのパッケージ・プロジェクト管理ツールはまだ乱立状態にあって、どれを使えばいいのかわからないから慣れたpyenv+pipを使おうという判断をする人がいるかもしれない。その判断自体は別に否定しないけれども、初心者に教える時にpyenvを教えるのはもうそろそろやめてほしい。 Pythonをソースからビルドするので、コンパイラや依存ライブラリを事前に揃えないといけない。依存ライブラリが足りないと中途半端なPython環境もできうる。 デフォルトで最適化オプション(PGO+LTO)が付いてないので、最適化ビルドしたPythonより~5%程度遅い Windowsで使えない Rye, pdm, Hatch などは python-build-standalone と呼ばれるビルド済みPythonをインストールする機能があるので、これらの欠点が存在しない。 Pythonをインストールするところま
今回紹介するのは、PythonとWebブラウザコンポーネントを利用してデスクトップアプリを開発できる「pywebview」だ。Webブラウザの持つ高い表現力にPythonの豊富な機能を組み合わせることができる点が便利だ。 pywebviewを使うとPythonからブラウザコンポーネントを操作できる ブラウザの表現力をPythonに組み合わせたアプリを作ろう Pythonでちょっとしたデスクトップアプリを作りたい場面というのは、意外と多いものだ。ファイルを選択したり、オプションを選んだり、エディタにメッセージを入力してもらうなど、簡単なUIが必要なだけであれば、先日紹介したTkEasyGUIでも十分だろう。 しかし、もっと画面表示を凝ったものにしたい場合には、Webアプリにして、画面入出力にブラウザを利用することも多い。この場合、FlaskなどのWebフレームワークを利用する。この方法であれ
はじめに 前提 ある日のこと ググってみる botocore、boto3 のバージョンを確認してみる 徐々に核心に なぜバージョン競合が発生するのか 原因まとめ 対応 おわりに はじめに サーバーワークスの宮本です。今回は本番運用していた AWS Lambda 関数が何も変更していないのに突然動かなくなった話を共有します。一見すると信じられない話ですが、最後までお読みいただけると幸いです。 前提 対象の Lambda 関数に関する基本情報(今回の話に関係ある部分のみ)は以下の通りです。 2023/01 に初回デプロイし、運用を続けていた ランタイムは Python3.9 依存ライブラリは Lambda Layer にまとめている 月に数回動かすようなバッチ処理 ある日のこと 4月某日のことです。当該 Lambda の実行でエラーが発生したことが通知されました。以下はエラー内容の抜粋です。
今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 pip install tenacity 使い方 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!") else: retur
pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands. Think ansible but Python instead of YAML, and a lot faster. 🚀 Super fast execution over thousands of targets with predictable performance. Up to 10x faster than
PythonコードをWebAssemblyにコンパイルする「py2wasm」がWasmer社から発表された。WebAssembly版CPythonよりも約3倍高速だ。PythonコードをCPythonのAPIコールに変換するトランスパイラがベースになっている。 WebAssemblyランタイムの開発と提供を行っているWasmer社は、PythonのコードをWebAssemblyバイナリにコンパイルする「Py2wasm」を発表しました。 Announcing py2wasm – A #Python to #WebAssembly compiler that speeds up by 3x your Python apps!https://t.co/0v4YLZC7lY — Wasmer (@wasmerio) April 18, 2024 WebAssembly版CPythonよりも3倍高速
なぜこの記事を書くのか 皆さん、データ解析を行う際にどのようなライブラリを用いているでしょうか。 おそらく大半の人はpandasを使っているのではないでしょうか。 私もpandas使ってます。簡単だよね(´・ω・`) しかし、業務でバカクソでけえデータを読み込もうとしたときに、読み込み時間がとんでもなくかかったり、メモリ不足でそもそも読み込めもしないことが起きていました。 読み込みにメモリ食われすぎて他の作業ができずに待機した挙句、燃え尽きたかのようにノーパソのファンが止まると同時にメモリ不足のエラーが出たときには切れ散らかします。 (画像元:葬送のフリーレン公式Xアカウントのポストより) そんなこともあり、AWSなどのクラウドサービスでメモリに余裕を持たせるためにめちゃくちゃ良いインスタンスを使用していましたが、コストの問題で断念しました。 しかし、どうしても読み込みたいということもあり
Cloudflare WorkersがPythonをサポート、WebAssembly版Pythonランタイムの「Pyodide」を採用で Cloudflareは、CDNエッジでJavaScriptランタイムによるアプリケーション実行基盤を提供する「Cloudflare Workers」で、Python言語のサポートをオープンベータとして開始したと発表しました。 これによりCloudflare Workers上でPythonを用いたアプリケーションの構築が可能になります。 Introducing Cloudflare Workers in Python, now in open beta! We've revamped our systems to support Python, from the runtime to deployment. Learn about Python Worke
今までuWSGIをシングルスレッド、マルチプロセスで使っていたのだけれども、昔に比べて外部のAPI呼び出しが増えているのでマルチスレッド化を検討している。 uWSGI uWSGIでマルチスレッドを有効にした時は、各workerスレッドがacceptする形で動作する。スレッド数以上の接続をacceptすることがないので安心。 プロセス内のスレッド間ではmutexで排他されて、同時にacceptを実行するのは1スレッドのみに制限されている。つまりthendering herd問題はプロセス間でしか起こらない。マルチスレッド化でプロセス数はむしろCPUコア数まで減らせるので、thendering herd問題はむしろ今よりも軽減できる。(ちなみにプロセス間でもロックしてthendering herdを許さないオプションもあるけど、プロセス間同期は怖いので使っていなかった。) ただしuWSGIのマ
はじめに commmune Advent Calendar 2023 の5日目の記事です。 毎日行うビルドやデプロイ、改善してますか? 例えば、ビルド時間が前より5分増えていたけど誰も気づかないという事態は価値提供のスピードに関わるので避けたいところです。 そこで、Cloud LoggingのLog Analyticsを使ってCloud Buildの時間を可視化してみました。 作成したもの ビルドとデプロイにかかった合計時間と各ステップの時間推移のダッシュボードを作りました。 このグラフでは兆候は見られないですが、一目で時間増減の傾向が把握できます。 各ステップの時間のグラフを拡大するとこんな感じです。 y軸は時間の積算になっていますが、実際はステップを並列実行しています。 トータルは合計時間のグラフで確認できます。 以下の流れで作成しました。 ビルド・デプロイの時間をログへ出力する ログ
お疲れ様です。 今日からは「Python だけで作る Web アプリケーション(フロントエンド編)」について部分いたします。 はじめに 設計方針 共通部分の作成 ログインページ 商品一覧ページ 商品詳細ページ カートページ 注文一覧ページ 注文詳細ページ まとめ 今回は10の記事に分けて投稿するようにします。 今日は「はじめに」について部分いたします。 なぜ本書を書いたのか 本書は主に以下のような方を対象にしています。 Web アプリケーションの構築経験がない新米エンジニア Python はかけるが、HTML/JS/CSS が苦手な Pythonista 細かい UI の設定はせず、検証・デモ用の Web アプリを短期間で作りたい開発チーム どうやって作ったか 対象読者の悩みを解決するために、次の 3 つの要素が必要と考えました。 Web アプリケーションの基礎知識 参考にしてもらえる品質
はじめに この記事では、Streamlitの概要を説明し、Streamlitを使ってデータ分析Webアプリを実際に開発する中でStreamlitの機能をいろいろと紹介していきます。最終的に以下のようなApacheやTomcatなどのアクセスログを解析するWebアプリをつくります。 Streamlitとは Streamlitは、Pythonで実装されたオープンソースのWebアプリケーションのフレームワークであり、機械学習やデータサイエンス向けのグラフィカルなWebアプリを簡単に作成して全世界に公開(クラウドサービスにデプロイ)できます。 主な特徴 Pythonのみで実装可能(HTMLやCSS、JavaScriptなどフロントエンドのコードを書かなくていい) 豊富なウィジェットが利用可能 Google ColabやJypter Notebookで作成したPythonのコードがほぼそのまま利用で
IT Leaders トップ > 経営課題一覧 > データ活用 > 事例ニュース > NTTドコモ、Python GUIライブラリ「Streamlit」でデータ可視化アプリを内製開発 データ活用 データ活用記事一覧へ [事例ニュース] NTTドコモ、Python GUIライブラリ「Streamlit」でデータ可視化アプリを内製開発 データ抽出/分析にかかるコストを54%削減 2024年2月22日(木)日川 佳三(IT Leaders編集部) リスト NTTドコモは、全社規模でデータ活用を推進する中で、データ可視化アプリケーションを容易に開発するため、オープンソースのPython GUIライブラリ「Streamlit(ストリームリット)」を導入した。導入効果として、開発に着手してから8営業日でアプリを運用開始している。また、開発したアプリの利用により、データの抽出や分析にかかるコストを54%
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く