タグ

pythonに関するtakanashのブックマーク (80)

  • Python開発環境をスッキリ整える:uv / Ruff / Taskfile

    はじめに しばらくの間、自分のPython開発環境はこんな構成だった。 pyenv:Pythonのバージョン管理 Poetry:依存関係と仮想環境の管理 flake8:リント black:フォーマット isort:インポート整列 Makefile:よく使うコマンドのまとめ 感じていた課題 組み合わせとして以前から広く使われていた構成(と思っている)でもあるが、使っている中で色々な課題を感じていた。 pyenvで想定したPythonバージョンでPoetryが構築されないミスをたまに起こす 生成AIの影響でPython触り始めましたの人にpyenv + poetryを教えるのはハードルが高い flake8・black・isortは干渉などもあるので、実行順番を意識する必要がある Makefileは昔からよく使うし便利だが、個人的には可読性が悪く感じる 個々のツールに問題があるわけではないが、ツ

    Python開発環境をスッキリ整える:uv / Ruff / Taskfile
  • Python ヒッチハイク・ガイド — The Hitchhiker's Guide to Python

    Python ヒッチハイク・ガイド¶ Python ヒッチハイク・ガイド へようこそ。 これは皆さんの手により生きているガイドです。 貢献したい方は GitHub で fork してください! この手作りガイドは、初心者と熟練者のPython開発者の両方に、Python のインストール、設定、および使用に関するベスト・プラクティスを日々提供するために存在します。 このガイドは、ほとんど 独断的なもの であり、Python の公式文書では ありません 。 ここでは、すべての Python Webフレームワーク の一覧は見つからないでしょうが、強く推奨されているリストが簡潔に見つかるでしょう。 さあ、始めましょう! まずは、あなたの探しものがどこにあるかを確認しましょう。

  • 【海外記事紹介】なぜ私たちは、ローンチ直後のアプリをPythonからNode.jsに書き換えたか

    11月4日、Yakko Majuri氏が「Why we migrated from Python to Node.js」と題したブログ記事を公開し、話題を呼んでいる。この記事では、ローンチからわずか1週間でバックエンドをPython(Django)からNode.js(Express+MikroORM)へ全面移行した理由と、その得失について詳しく紹介されている。以下に、その内容を紹介する。 11月4日、Yakko Majuri氏が「Why we migrated from Python to Node.js」と題したブログ記事を公開し、話題を呼んでいる。この記事では、ローンチからわずか1週間でバックエンドをPython(Django)からNode.js(Express+MikroORM)へ全面移行した理由と、その得失について詳しく紹介されている。以下に、その内容を紹介する。 概要 この記事の

    【海外記事紹介】なぜ私たちは、ローンチ直後のアプリをPythonからNode.jsに書き換えたか
  • Pythonで開発する時のディレクトリ構成を晒します

    Pythonでコードを書き始めて気づけば5年くらい経ってました… 時の流れが早すぎる… Pythonで開発をする際の構成がおおよそ落ち着いてきたので、まとめる意味も含めここで紹介しようと思います。 概要 一概にPythonを書く時といってもPyPIに公開することを見据えて書く時と、 自分だけが使う予定のコードを書く時ではさすがに真剣度(とは)が違います。 そこで今回は雑に書く時、少し真面目に書く時、真剣に書く時の3種類に分けて紹介しようと思います。 全体を通して Poetry を使った開発、gitでバージョン管理しGitHubをリモートリポジトリとすることを前提としています。 私の開発環境はUbuntuですが、今回の内容ではあまり関係ないと思います。 雑に書く時の構成 「雑に書く」の基準としては、自分以外に見せる予定が無い、自分も将来使いまわす予定がない、をイメージしています。 逆に言うな

    Pythonで開発する時のディレクトリ構成を晒します
  • Pythonのプロジェクトのフォルダ構造

    Pythonプロジェクトを開発する際に推奨される標準的なフォルダ構造を紹介します。 以下は、一般的なPythonプロジェクトの構成です: project-name/ │ ├── README.md # プロジェクト概要、使い方、環境構築方法 ├── LICENSE # ライセンスファイル ├── .gitignore # Gitで無視するファイルを指定 ├── requirements.txt # 必要なPythonパッケージのリスト ├── setup.py # パッケージ化するためのセットアップファイル ├── pyproject.toml # 現代的なビルド設定・依存関係管理(任意) │ ├── src/ # ソースコードを格納するフォルダ │ └── your_package/ │ ├── __init__.py # パッケージ化のための初期化ファイル │ ├── main.py

    Pythonのプロジェクトのフォルダ構造
  • The Hitchhiker’s Guide to Python! — The Hitchhiker's Guide to Python

    The Hitchhiker’s Guide to PythonGreetings, Earthling! Welcome to The Hitchhiker’s Guide to Python. This is a living, breathing guide. If you’d like to contribute, fork us on GitHub! This handcrafted guide exists to provide both novice and expert Python developers a best practice handbook for the installation, configuration, and usage of Python on a daily basis. This guide is opinionated in a wa

    The Hitchhiker’s Guide to Python! — The Hitchhiker's Guide to Python
  • 【海外記事紹介】Pythonは「なぜ遅い」のか?

    8月7日、LWN.netが「Python performance myths and fairy tales」と題した記事を公開した。この記事では、Pythonの性能に関する「神話」とも言える誤解を批判的に検証し、現実の制約と今後の可能性について詳しく紹介されている。 以下に、その内容をかいつまんで紹介する。詳しくは原文を参照していただきたい。 Python当に「遅い」のか? 記事は、EuroPython 2025において、PyPyの開発者であり長年Python性能の向上に取り組んできたAntonio Cuni氏による講演内容を中心に構成されている。Cuni氏は、Pythonの性能について多くの「神話」が存在するとし、それらを一つずつ検証していった。 誤解その1:「Pythonは遅くない」 会場で「Pythonは遅いと思うか」と尋ねたところ、多くの聴衆が手を挙げた。この反応は、PyCo

    【海外記事紹介】Pythonは「なぜ遅い」のか?
  • Pythonが教育用途において十分だという話

    Python教育用途において十分だという話 今話題のPythonを教えている現役の講師です。Pythonを教える際に重視すべきだと考えている機能等について書いておきます。 dataclass / Pydantic 自分は型ヒントよりもdataclassやPydanticを使った型付けを重視しています。いわゆるクラスベースな言語の書き方が大事だと考えています。 dataclass Pythonは動的型付け言語であり、interface相当の機能すらclassの構文で書く変わった言語です。近年Pythonの型ヒントは少しづつ充実してきていますが発展途上であることは否めないですし、何より実行時にその型であることは保証されないので、dataclass等を使った開発スタイルが依然強力だと考えています。 Python+TypeScriptというようなスタックを使う際には両言語の差に混乱するでしょう。

    Pythonが教育用途において十分だという話
  • Pythonでアルゴリズム(セグメント木)(実践) - Qiita

    はじめに 普段はググってセグ木を貼るだけでしたが、コロナウイルスの影響で時間が出来たので原理を理解しながら実装してみました。 ネットを中心に様々な方の記事を参考にしながら構築していきました。最後の参考文献にリンク先は載せますが、普段コンテスト中にコードを利用させていただいているじゅっぴーさんの記事、ライブラリをよくのぞかせていただいてるいかたこのたこつぼさんのHPに特にお世話になったので、冒頭で載せておきます。 目的 原理などは別の記事にまとめようと思います。この記事の目的は自分のセグ木の使い方の説明です。 おおまかな特徴としては、じゅっぴーさんを参考にさせていただいて、自分で単位元と行いたい操作を設定すること、クラスで書かれていることが挙げられます。セグ木のノードは1-indexで書きました。 コード ##### segfunc##### def segfunc(x, y): retur

    Pythonでアルゴリズム(セグメント木)(実践) - Qiita
  • VS CodeでPython 3の競プロコードをデバッグ実行 - minus9d's diary

    AtCoderやCodeforcesなどの競技プログラミングサイトでは、通常、標準入力から入力を受け取ります。例えばPythonで回答する場合、あなたの回答(例としてsolve.pyとします)は、入力が書かれたテキストファイルinput.txtが $ python solve.py < input.txt のように与えられたとき、正しく出力することが求められます。 Visual Studio Codeでは<を使った入力や出力はdebugger/runtime specificということになっています (https://code.visualstudio.com/docs/editor/debugging#_redirect-inputoutput-tofrom-the-debug-target) 。私の理解が正しければ、Pythonを実行する処理系が<をうまく扱えない場合、Visual S

    VS CodeでPython 3の競プロコードをデバッグ実行 - minus9d's diary
  • 複数Office文書のPDF変換処理を並列化してみた - Qiita

    はじめに 複数Office文書を同時にPDF変換してみました。 ※ [LibreOfficeのsofficeコマンドでOffice文書をPDF変換してみた]も合わせてご参照ください。 やりたいこと 複数Office文書のPDF変換にかかる時間を短縮したい。 解決方法 Office文書別、異なるユーザプロファイルを指定しsofficeコマンドをバックグラウンド実行する。 前提知識: LibreOfficeのユーザプロファイル ユーザーに関連するすべてのデータを格納するフォルダ 拡張機能やカスタム辞書、テンプレートなど LibreOfficeをアンインストールやアップデートしても削除されない カスタマイズした内容は保存される デフォルトの格納場所 Windows: %APPDATA%\libreoffice\4\user Linux: /home/<ユーザー名>/.config/libreof

    複数Office文書のPDF変換処理を並列化してみた - Qiita
  • More precise image placement possible with openpyxl? (Pixel coordinates instead of cell coordinates?)

    I'm attempting to replicate and automate a well used practice in work: I'm trying to place multiple images and text within a cell in openpyxl, however I can only anchor images to the top left of a cell, and have not found a way to position any more accurately than that. So they end up overlapping with eachother and the text. from openpyxl import Workbook from openpyxl.drawing.image import Image wb

    More precise image placement possible with openpyxl? (Pixel coordinates instead of cell coordinates?)
  • C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに

    Sourcetrailは、開発者が他人の書いたソースコードを理解し、生産的にコーディングを行えるよう支援する。開発者は既存のソースコードを理解することに多大な時間を費やすが、一般的なコードエディタは、こういった作業にはほとんど役に立たない。 Sourcetrailの主要開発者であるEberhard Gräther氏は、「Google Chrome」のグラフィックスチームにインターンシップとして参加した2012年時点の経験を次のように語っている。 「割り当てられた単純に見えるタスクに着手し、具体的なコードの改善に取り組み始めるとすぐに、Chromiumの巨大なアーキテクチャを理解する機会が全くないことに気付いた。ドキュメントはあまり役に立たず、開発チームのメンバーは非常に友好的だったが、コードベースについて質問するインターンに邪魔されることを好まないことも分かった。そこで、ソースコードを読ん

    C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに
  • 開発やデバッグが捗るPythonライブラリ6選 - Qiita

    目次 概要 動作環境 紹介するPythonライブラリ flake8 pyformat isort mypy bpython ipdb 最後に 概要 仕事でよくつかうパッケージからプライベートで開発するときに、必ずインストールしているパッケージをまとめて紹介してみた。 データサイエンス系の人はJupyterを使うと思うのでWeb開発向きだと思います。 DjangoなどWebフレームワークを使うときは便利な専用のパッケージもありますが記事には記載してないです。 パッケージ管理はPipenvやpoetryなど有名なものがあるがこの記事では書いてないです。 動作環境 筆者の動作環境。 環境に依存したパッケージはないはずだが念の為。 MacOS Python 3.8.0 anyenv 1.1.1 pyenv 1.2.15-1-g49bf5952 紹介するPythonパッケージ flake8

    開発やデバッグが捗るPythonライブラリ6選 - Qiita
  • もうPythonの細かい書き方で議論しない。blackで自動フォーマットしよう - Make組ブログ

    「ここで改行するほうがキレイで良いと思います」 『いや、私はこちらのほうがキレイ良いと思います』 コードレビューでこういう議論をしたことはありませんか? 大切なことだとは思いますが、生産性にはあまり直結しません。議論を避けるために書き方を決めるほうが良いでしょう (個々の問題について逐次議論するのがエネルギーを無駄にしてしまいます。一度決めて、再利用するようにしたいものです)。 今日はそのために使える black というツールを紹介します (「私はflake8を使ってるから結構です」と思われるかもしれませんが、少し違う話なので読んでみてください)。 blackを使おう Pythonのコードを自動でフォーマットしてくれる black を紹介します。 github.com blackはPythonのコードフォーマッターで、自動的にPythonプログラムの書き方を修正してくれます。 PEP8 と

    もうPythonの細かい書き方で議論しない。blackで自動フォーマットしよう - Make組ブログ
  • Google スプレッドシートをpythonで操作する - Qiita

    Abstract Google スプレッドシートをpython用ライブラリgspreadを通して読み書きします.流れはよくまとまった記事に書かれている感じです. 下準備 全体的に先人の記事の劣化コピーです. APIの有効化 まずGoogle Developers Consoleで適当にプロジェクトを作成します(今回はtestとします).ダッシュボードからAPIとサービスの有効化をクリックしてGoogle Sheets APIを有効にしましょう. OAuth用クライアントIDの作成 「認証情報」→「新しいクライアントIDを作成」→「サービスアカウント」を選択して「クライアントIDを作成」しましょう.サービスアカウントが初めての場合は新しいサービスアカウントでサービスアカウント名を入力しましょう(役割はよくわからなかったのですが役割なしで作成できたので今回は役割なしでいきます).jsonファイ

    Google スプレッドシートをpythonで操作する - Qiita
  • Python環境構築ベストプラクティス2019

    Python環境構築ベストプラクティス2019 Published at: 2019-02-18 / Updated at: 2019-05-14 Web上には新旧さまざまなPython環境の構築の方法が乱れており, 正しい情報にたどり着けない人がいて不憫なので2019年2月現在のベストプラクティスをPythonを使いたい人の属性ごとに紹介したいと思います. 自分がどのような環境を作ればいいかわかったなら公式ドキュメントというほぼ絶対的な1次資料を元に最高の環境を作っていきましょう. For Beginners とりあえずPythonを勉強してみたい, 手軽に手元にあるデータを解析してみたいという人はこちらです. プログラムをガリガリ書いていくのではない場合, 自分のPCに環境構築する必要はありません. Googleが提供しているColaboratoryを使いましょう. 苦労することなくP

  • これでprintデバッグから卒業!VS CodeでPythonデバッグ入門 - karaage. [からあげ]

    追記:VS Codeの入門書をZennでリリースしました ブログで扱ったVS Code関連の記事をまとめて、無料の電子書籍としてZennというプラットフォームでリリースしました。よければ、こちらも参考にしてみてください。 printデバッグから卒業したい! プログラムを書いて問題があったとき必要なのがデバッグですね。私はいつも問題が起こったとき、問題ありそうなところで print(ほにゃらら)として、気になるものを一つずつ中身を確認していました。 デバッガという言葉は知っていて、何度か試したことはあるのですが、いちいちコマンドを打つのが大変で、次にデバッグが必要なときは既にデバッガの使い方を忘れてしまい、結局また1からprintデバッグをするという体たらくでした。 しかし、いい加減もうちょっとレベルアップしないといけないと思い立ったのと、VS Codeというエディタを使いこなすと結構楽にデ

    これでprintデバッグから卒業!VS CodeでPythonデバッグ入門 - karaage. [からあげ]
  • Python の DB-API (Database API) とは何か - CUBE SUGAR CONTAINER

    Python でデータベース周りについて調べていると、ドキュメントの中にちょくちょく DB-API (2.0) という単語が出てくる。 果たしてこの DB-API とは何者なのか、というのが今回の主題。 結論から言ってしまうと、DB-API というのは Python でリレーショナルデータベースを操作するために定義された API の仕様を指している。 仕様というのがポイントで、これは具体的な実装を指しているわけではない。 DB-APIPython に関する仕様を決める PEP という枠組みの中で PEP0249 というドキュメントに書かれている。 PEP 249 -- Python Database API Specification v2.0 | Python.org なぜ DB-API が必要になるのだろうか? それは、リレーショナルデータベースに SQLite3 や MySQL

    Python の DB-API (Database API) とは何か - CUBE SUGAR CONTAINER
  • Python の HTTP クライアントは urllib.request で十分 - Qiita

    AWS LambdaPython 3 に対応してからというもの Lambda Functions はだいたい Python 3 で書くようになったが、Lambda では外部モジュールに依存する関数を作ろうとすると一気に面倒臭さが増してしまう。1 そもそも Python は標準モジュールが充実していてよほど複雑なことをしなければ標準モジュールだけで済ませることができるのだから、極力外部モジュールに頼らない書き方ができるとより気軽に Lambda Function を書けるようになる。 例えば Python から HTTP API を利用する場合、何も考えずにすぐ requests などの便利な HTTP クライアントモジュールを入れてしまいがちだが、冷静になって考えると「その程度の用途なら urllib.request で十分では」と思うことは少なくない。 そこで今回は HTTP AP

    Python の HTTP クライアントは urllib.request で十分 - Qiita