この記事は2024年7月6日で公開された中国語の記事「Python 潮流周刊#60:Python 的包管理工具真是多啊」の日本語訳です。主に LLM によって翻訳され、手修正で校正されていますが、もし不自然の点が気づいたら、「記事の改善」機能で、編集リクエストをいただけるとありがたいです。
こちらから最新号まで購読できます(英語のみですので、ご了承ください。)
こんにちは、Python エンジニアのネコです。毎週、英語を中心とした高品質な Python、AI、そして一般的な技術に関する情報をお届けしています。また、Telegram のチャンネルでは、より幅広いニュースや情報も補足的に発信していますので、ぜひフォローしてみてください。
今週は、12本の記事と12のオープンソースプロジェクトを紹介しました。全文は2300文字です。
🦄記事&チュートリアル
Python のパッケージ管理エコシステムは、良い意味で多様性、悪く言えば支離滅裂と言える状況です。著者は10数種類の Python パッケージ管理/仮想環境管理ツールを簡単にレビューし、最終的な推奨としては:データサイエンスや実験を行う方は conda を、それ以外の方はプロダクション環境では pip または poetry を使用することを提案しています。(補足:中国語翻訳)
2、Flask と HTMX で動的なブログを構築する(第1回)
Python を使った Web フルスタック開発シリーズで、Flask と HTMX を使用してインタラクティブなブログを構築します。このシリーズの第2回は応用編で、TailwindCSS と認証機能が追加されています。
3、PySkyWiFi:航空会社の仕組みを利用して無料ネット接続を実現
著者は機内で Wi-Fi 接続にクレジットカード情報が必要な一方、航空会社のマイレージプログラムには無料でログインできることに気づきました。そこで、アカウントのプロフィール情報を定期的に更新することでメッセージの送受信を可能にする手法を考案しました。本記事ではその仕組みを解説し、チャット機能、ニュース/株価情報、サッカースコア通知など複数のプロトタイプを実装。さらに効率化と改善のためのアイデアも提案しています。
著者は乱数関連のバグに直面し、乱数を予測可能にする方法を調査。既存の Python コードを一切変更せずに実現する方法を模索しました。本記事では ptrace を使って getrandom システムコールを傍受・改変する手法を紹介しています。
5、ChatGPT サンドボックスの Linux システム実態
ChatGPT がサンドボックス環境で Python コードやシステムコマンドを実行できる仕組みについて、著者はその実態を明らかにしました。実際には Azure クラウド上の K8S クラスターマシンであることを特定し、プロセス情報の確認、ネットワーク接続のテスト、ファイルのアップロード・ダウンロードなど様々なコマンドを試行。さらにサンドボックス環境の完全な Python ソースコード(約650行分)も発見しています。
ユニークなプロジェクトで、著者は AI、Raspberry Pi、モーター機構を組み合わせ、窓から自動的に帽子を落下させるシステムを開発。既にオンライン販売を始めており、まさに新しいショッピング体験を提供しています!
7、pip と uv:Streamlit Cloud がアプリケーション起動時間を 55% 短縮した方法
uv は Rust で開発された pip の代替ライブラリで、Streamlit Cloud がこれを採用した結果、pip と比較して大幅な高速化を実現しました。この記事では、pip がなぜそれほど遅いのか、そして uv がどのようなパフォーマンス向上手法を採用しているのかを分析しています。
8、講演:CPython JIT (Chipy 2024) 発表資料と参考リンク
著者が先日、シカゴ Python ミートアップグループ (The Chicago Python Meetup Group) で CPython JIT に関する講演を行いました。この記事には、発表で使用したスライド資料全体と関連リソースが含まれています。(参考:最新の CPython JIT を試す方法)
通常、Python ソフトウェアパッケージの名称はそのモジュール名と同じですが、これは単なる不文律です。記事では、PyPI で最も人気のある 8000 パッケージを調査し、命名パターンを分析した結果、81% のパッケージでパッケージ名とモジュール名が一致していることが明らかになりました。さらに、名前空間や一般的な接頭辞・接尾辞などについても分析しています。
10、システムコール比較:Python と Ruby の違い
著者が開発したCirron ライブラリは、システムコールを追跡し、1行のコードのパフォーマンスを記録することができます。この記事では、このライブラリを使用して、Python と Ruby のファイル入出力、乱数生成、時間表示、文字列出力などの操作におけるシステムコールコマンドと実行時間の違いを比較しています。
11、GitHub Action でクローラーを実行し、データを SQLite データベースに保存する方法
GitHub Action でクローラープログラムを自動実行し、収集したデータを GitHub Artifact に保存する方法を紹介しています。サーバーレスで完全無料です。記事では、関連するワークフロー、設定方法、実装における制限事項などについて説明しています。
12、35 年間のソフトウェア開発キャリアから学んだ 12 の教訓
著者はソフトウェア開発に 35 年間携わり、12 の貴重な教訓を共有しています。主にソフトスキルに関するもので、最もシンプルな方法で物事を進めること、人間関係の重要性、常に透明性を保つこと、自発的に行動することなどが含まれています。
著者は経験豊富なプログラマーとして、これらのアドバイスをもっと早く知っておきたかったと述べています:見過ごされやすい小さな問題を積極的に直すこと、開発速度とコード品質のトレードオフを考慮すること、複雑な問題を簡素化すること、バグの根本原因を突き止めること、完璧でないコードを受け入れることなど。
🐿️プロジェクト&リソース
1、dnstwist:ドメインのフィッシング攻撃、タイポスクワッティング、ブランドなりすましを検出
DNS のファジーテストにより、潜在的な悪意のあるドメインを検出し、フィッシング攻撃やブランドなりすましなどの問題を検出します。(スター数 4.7K)
2、posting:ターミナル上で動作するモダンな API クライアント
ターミナル上で動作する Postman や Insomnia に似た HTTP クライアントで、シンタックスハイライト、Vim ショートカット、様々な組み込みテーマ、環境変数の自動補完、素早い操作のためのコマンドパレットなどをサポートしています。(スター数 1.9K)
3、filesystem_spec:Python ファイルシステムが準拠すべき仕様
ファイルシステムインターフェースのためのテンプレートと仕様ファイルを生成し、安定した信頼性の高い共通動作を提供します。Pandas、Dask、Huggingface Datasets などのライブラリは内部でこのライブラリを利用しています。
4、babel:Python 国際化 (i18n) ライブラリ
主に Web プロジェクトの国際化に使用され、多言語表示の処理を行います。(スター数 1.3K)
5、fastapi-docker-temp:FastAPI ベースの最小構成 Docker プロジェクトテンプレート
FastAPI ベースのサービスを素早く構築・デプロイするために利用でき、技術スタックとして ORM の SQLModel、依存関係管理ツールの Poetry、データベースマイグレーションの Alembic も含まれています。
6、crawlee-python:Python Web スクレイピングとブラウザ自動化ライブラリ
AI、LLM RAG または GPT のためのデータを抽出します。Webサイトから HTML、PDF、JPG、PNG およびその他のファイルをダウンロードでき、BeautifulSoup、Playwright およびネイティブ HTTP に対応しています。ヘッドフルモードとヘッドレスモードを提供し、プロキシのローテーションをサポートします。(スター数 1K)
7、django-sql-explorer:SQL クエリで社内全体にデータを手軽に共有
Django をベースとしたプロジェクトで、SQL エディタ上で SQL を書き、共有し、ブラウザ上で結果を確認できます。LLM アシスタントを追加する機能もサポートしており、SQL の作成やデバッグを支援してくれます。(スター数 2.7K)
8、pyxel:Python 向けピクセルスタイルゲーム開発エンジン
Python を使ってピクセルスタイルのレトロゲームを開発でき、Windows、Mac、Linux、そして Web 上でも動作します。キーボード、マウス、ゲームパッドの入力に対応しています。(スター数 14K)
9、0xtools:Linux システム上で動作するアプリケーションの性能分析
Linux システムの詳細な分析を行い、プログラムの性能を測定します。スレッドレベルの活動を計測でき、単一スレッドからシステム全体までの CPU 使用率を確認することができます。(スター数 1.2K)
10、Secator:ペネトレーションテスト担当者向けのスイスアーミーナイフ
実用的なツールセットであり、セキュリティ評価のタスクやワークフローを実行可能です。数十種類の有名セキュリティツールをサポートしており、ペネトレーションテスト担当者やセキュリティ研究者の作業効率向上に貢献します。
11、rss2newsletter:RSS/Atomフィードからメールニュースレターを生成
RSSフィードの内容をメール形式に変換するツールで、100%無料のオープンソースです。listmonkと連携してメール配信を行うことができます。
12、vectorlite:SQLite の高速かつ調整可能なベクトル検索拡張
SQLite の実行時ロード可能拡張で、hnswlib ベースの高速 ANN (Approximate Nearest Neighbor) 検索を実装しています。Windows、macOS、Linux に対応しています。
13、LivePortrait:人物ポートレートを生き生きと動かす
快手 (Kuaishou) 、中国科学技術大学 、復旦大学によってオープンソースとして公開された人物肖像アニメーションモデルです。音声・映像の連動、ドライブビデオの自動クロップ、テンプレート制作などの機能に対応しています。(スター数 6K)
🐧 バックナンバー
Python潮流周刊#10:Twitter 的强敌 Threads 是用 Python 开发的!(2023.07.08)日本語訳
🐱購読はこちら
技術ニュースレターは、情報過多の時代において質の高い知識を見極めるためのスマートな手段です。このプラットフォームは日本の Python 開発者向けに特化しており、シェアする価値のある記事、チュートリアル、オープンソースプロジェクト、ソフトウェアツール、ポッドキャスト、動画、話題のトピックなど、豊富なコンテンツを厳選してご紹介します。今すぐ購読すると、毎週1本の記事が配信され、少しずつスキルアップできます。
コメントをお待ちしています!今週の紹介記事で特に気に入ったものはどれですか?皆さんからのフィードバックが多いほど、今後もより多くの情報を紹介していきます!


