この記事は2023年5月13日に公開された中国語の記事「Python潮流周刊#1:如何系统地自学Python?」の日本語訳です。主に LLM によって翻訳され、手修正で校正されていますが、もし、不自然の点が気づいたら、「記事の改善」機能で、編集リクエストをいただけるとありがたいです。
こちらから最新号まで購読できます(英語のみですので、ご了承ください。)
ここでは毎週、参考になる Python や汎用技術に関する情報をまとめています。一部は英語の内容も含まれており、小見出しにその旨を記載しています。(今回のタイトルは共有項目の一つから取ったもので、すべての内容がそのテーマに関するわけではありませんのでご了承ください。)
🦄記事&チュートリアル
1、プログラミング言語におけるエラーハンドリングのパターン(中国語)
この記事では、プログラミングでよく使われる4つのエラー処理手法を紹介しています:エラーコードの返却(C、Go)、例外(Java、C#、Python、C++)、コールバック関数(JavaScript)、そして Result オブジェクト(Haskell、Rust、Kotlin)。それぞれの特徴やメリット・デメリット、使う際の注意点について分かりやすく解説されています。
訳注:この記事は英語から中国語に翻訳されましたものですが、原文はここで読めます。
2、Python 仮想マシンを深掘り:ディスクリプタの仕組みとソースコードの解析(中国語)
この記事では、ディスクリプタの仕組みについて解説し、CPython のソースコードに登場する関連バイトコード命令を詳しく読み解いています。さらに、Python のコード例を通じて、ディスクリプタがどのように動作するのかを分かりやすく説明しています。内容は GitHub 上の「Python 仮想マシンを深く理解する」シリーズの一部で、現在このシリーズには20本以上の記事が公開されています。
最近、AI を使った孫燕姿(スン・イェンツー)の音声モデルが大きな注目を集めています。この記事では、Python 3.10 と、so-vits-svc(高い表現力を持つ音声合成モデル)、Spleeter(ボーカルと伴奏の分離ツール)、FFMPEG(音声と伴奏のミックスツール)といったオープンソースライブラリを用いて、AI 孫燕姿に楽曲を歌わせる手順をステップバイステップで解説しています。(PS. 著作権上の懸念から、so-vits-svc プロジェクトは現在アーカイブ済みです)
4、C 言語で Python パッケージを書く(中国語)
この記事では、Python/C API の基本的な特徴を解説し、最終的に公式の datetime
モジュールを参考にした C 拡張モジュールを実装しています。本記事は「Python/C API チュートリアル」シリーズの第1回で、現在は第2回まで公開されています。
5、Python の便利なツールを紹介するシリーズ(中国語)
現在公開されている記事は全31本あります。最近の記事では、データベース関連のツールが中心に取り上げられており、たとえば Py2neo を使って操作する NoSQL グラフデータベースの Neo4j や、Psycopg2 で操作するリレーショナルデータベース(RDB)の PostgreSQL、さらに MongoDB、Access、ClickHouse、Redis などが紹介されています。
6、PEP-713:呼び出し可能なモジュール(英語)
Łukasz Langa 氏による新しい提案で、モジュールのグローバル名前空間に __call__ というオブジェクトを定義することで、モジュール自体を関数のように呼び出せるようにしようという内容です。__call__ は通常の関数や、他の任意の呼び出し可能なオブジェクトでも問題ありません。現時点ではこの提案はドラフト段階で、まだ正式には採用されていません。
7、「Externally managed environments」: PEP-668 による pip への影響とは?(英語)
最近の Linux システムで pip install を実行すると、「externally managed environment」というエラーが出ることがあります。これは、ディストリビューション側で一部の Python パッケージがあらかじめインストールされており、pip 経由のインストールがそれらとバッティングしてしまうためです。この問題を避けるには、開発時は仮想環境を使う、Docker コンテナではシステムの Python を使わない、そして最新のツールを使いたい場合は pipx を使う、といった対応が推奨されます。Python のパッケージ管理は今もなかなか厄介で、当面の間、大きな改善は見込めそうにありません。
8、Bevy v2.0:Python の依存性注入フレームワーク(英語)
Bevy v2.0 は、Python アプリケーションの管理をよりシンプルにするための高機能な依存注入フレームワークです。記事では、依存関係を解決する代表的な3つの方法(グローバル変数の利用、パラメータ渡し、依存性注入)について解説しています。Bevy v2.0 では、パラメータインジェクション、プロパティインジェクション、リポジトリ、コンストラクタインジェクションといった手法が採用されています。
🐿️プロジェクト&リソース
ここ数ヶ月、人工知能のブームの波に乗って、Github で AI 関連のプロジェクトが連日注目を集めています。Python を中心にした有名なオープンソースプロジェクトについては、すでにニュースサイトやSNSなどで目にした方も多いのではないでしょうか。そこで、今週は、そうした話題作と一線を画して、小規模ながら魅力あるプロジェクトを中心に紹介します。なお、今回は、中国語圏の開発者によるプロジェクトを中心に取り上げています。
まるで生きているかのような音声アシスタントを実現した Python プロジェクトです。フロントエンドとの通信、音声認識、ChatGPT の統合、音声合成に対応しています。フロントエンド側ではキャラクターアニメーションの描画、音声の録音と再生が可能です。
2、VITS ベースのシンプルで使いやすい音声変換(ボイスチェンジャー)フレームワーク
主な特徴は以下の通りです:入力音声の特徴を訓練データセットの中から最も近い(top1)特徴に置き換えることで、音色の漏れを防止します。性能があまり高くないグラフィックカードでも高速に学習が可能です。少量のデータ(最低でも10分程度の低ノイズ音声)での学習でも良好な結果が得られます。さらに、モデル融合機能(ckpt 処理タブ内の ckpt-merge)を使って音色を変えることも可能です。直感的に操作できるウェブインターフェースを備えており、UVR5 モデルを利用してボーカルと伴奏を素早く分離することもできます。
このプラグインは、電子書籍を指定した言語に翻訳し、原文と訳文を対訳形式で表示できます。Google 翻訳、ChatGPT、DeepL など複数の翻訳エンジンに対応しています。Calibre が対応するすべての電子書籍フォーマットに対応し、入力フォーマットは48種類、出力フォーマットは20種類あります。また、一括翻訳に対応しており、翻訳した内容はキャッシュに保存されるため、途中で中断しても続きから再開可能です。さらに、豊富なカスタマイズ設定も用意されています。
4、クロスプラットフォーム対応の超軽量組み込み Python エンジン
一から完全に再設計された超軽量 Python エンジンで、依存なし・設定不要です。Flashメモリが 64KB 以下、RAMが 4KB 以下の環境でも動作可能で、非常に容易にデプロイや拡張ができます。また、豊富な中国語のドキュメントや動画も揃っています。
🐢ポッドキャスト&動画
1、HardHacker:大手企業のエンジニアが小規模ビジネスを立ち上げ、リストラの波にも余裕を持って対応する方法(中国語)
「すべてのハッカー、開発者、プログラマーは、自分だけの小さな事業を持つ価値がある」。このポッドキャストでは個人開発をテーマにした回がいくつか配信されており、プログラマーとして技術や製品開発、起業のヒントが得られる内容になっています。
2、Talk Python To Me #414:スタートアップの道を歩く(英語)
4 月の PyCon では、Python スタートアップ企業が集まる「Startup Row」という特設ブースが設けられています。今回のエピソードでは、ホストがそれぞれのスタートアップの創業者と 5~10 分間インタビューを行っています。ポッドキャストと動画の両方で視聴可能です。
3、PythonBytes #335:そろそろ Mojo を使い始めるべき?(英語)
Mojo は LLVM と Swift を生み出した開発者が新たに作った AI 向けのプログラミング言語で、Python より最大で約 3万5000倍も高速だと話題になっています。Mojo は async/await、エラー処理、可変長引数など、Python の主要な機能の多くに対応していますが、まだ開発初期段階のため、クラス機能は未対応など、足りない部分も多いです。
4、ChatGPT プロンプトエンジニア|AIの大家アンドリュー・ンさんが教えるプロンプト作成術(英語)
あの有名なアンドリュー・ン氏が OpenAI と共同で開発者向けの ChatGPT プロンプト講座を公開しました。こちらは中国の動画サイト「BiliBili」のリンクで、中国語と英語のバイリンガル字幕が付いています。
訳注:公式サイトはここです。
🥂ディスカッション&トピック
1、Pythonを体系的に独学するには? (中国語)
知乎で人気のある質問の一つで、すでに7.4万人以上がフォローし、1200件以上の回答が寄せられています。
訳注:知乎(Zhihu)は中国で人気の Q&A プラットフォームで、専門的な話題から日常の疑問まで幅広く扱われています。
2、【悲報】conda は本当に使いづらい!Python 環境をスマートに管理する方法とは?(中国語)
V2ex の投稿で、Conda を使った際に直面した様々なトラブルについての不満が述べられています。具体的には、インストール後にコマンドが認識されない、依存パッケージのインストールが途中で止まる、システムのアップデートに悪影響が出るなど、多くの問題が報告されています。
訳注: V2ex は主にIT技術者やエンジニアが集まる中国の技術系コミュニティサイトで、Q&A や情報交換が活発に行われていますが、個人的な印象では技術的な話題よりも雑談や軽い話が多い場所で、むしろ 2ch みたいところです(笑)。
3、for ループの先頭で内包表記のような条件式を使えるようにする提案(英語)
このスレッドでは、Python の for ループで「for i in x if i % 2 == 0:」のように条件を直接書ける構文をサポートするアイデアが提案されています。
スポンサー&サポート
コンテンツの作成には多くの時間と労力がかかっています。もしこの記事が少しでも参考になったと感じたら、気軽にサポート や コーヒーをごちそう などをいただけると嬉しいです!この週刊が気に入った方は、ぜひ必要としている仲間にもシェアして、より多くの方に役立ててもらえたら嬉しいです〜
また、スポンサーも募集中です。興味のある方はぜひ DM にてご連絡ください。
本週刊について
Python トレンド週刊では、国内外200以上の情報源から注目すべき記事、チュートリアル、オープンソースプロジェクト、ソフトウェアツール、ポッドキャスト、動画、話題のトピックなどを厳選してお届けします。本週刊のビジョンは、すべての読者が Python 技術を高めるとともに、本業や副業の収入アップにつなげられるようサポートすることです。
本週刊は Github 上でオープンソースとして公開されており、issue 経由で投稿することもできます。
購読方法:Python猫 (Wechatのグループ参加可)| RSS | メールマガジン | Github | Telegram | Twitter