Python
公式サイトPythonとは
Pythonは、読みやすい文法と豊富なライブラリを特徴とするプログラミング言語です。データの集計や変換、画像や動画の解析、機械学習、定型作業の自動化など、Webの画面以外の領域で特に広く使われています。処理速度が求められる部分は専用のライブラリが担うため、書きやすさと実用的な性能を両立できます。オープンソースで公開されており、パッケージ管理ツールを使って必要なライブラリを組み合わせる形で開発します。
弊社が採用する理由
弊社では、Webシステム本体とは別に動かすデータ処理やメディア処理のジョブにPythonを採用しています。具体的には、蓄積したデータを集計・変換してデータ分析基盤に送る処理、画像や動画を解析・加工する処理などです。画像処理にはOpenCVというライブラリを使い、依存関係の管理にはuvというツールを使って、環境の再現性を確保しています。業務システムの本体はPHPやNode.jsで作り、Pythonが得意な処理だけを切り出してAWSのバッチ実行環境やコンテナで動かす構成にすることで、それぞれの言語の強みを活かしています。データ分析の依頼では、まずPythonで集計の試作を行い、結果を見ながら要件を固めていく進め方が有効です。生成AIを組み込む案件でも、評価用のスクリプトや前処理でPythonを使うことがあります。
向いている案件
- 蓄積したデータの集計・変換・分析基盤への転送
- 画像や動画の解析・加工などのメディア処理ジョブ
- 定期的に実行する定型作業の自動化
- 生成AIの評価やデータの前処理
保守・移行の観点
Pythonそのものの更新より、ライブラリの版の組み合わせが保守の中心になります。依存関係を記録したファイルと固定された版の一覧を管理し、実行環境をDockerで固めておくと、ローカルと本番で挙動が異なる問題を防げます。画像処理などのライブラリはOSのライブラリにも依存するため、コンテナのベースイメージの更新も合わせて計画します。処理結果の妥当性は自動テストだけでは判断しにくいことがあるため、代表的な入力データと期待する出力を保存しておき、更新後に比較する運用をおすすめしています。
組み合わせて使う技術
よくあるご質問
業務システム全体をPythonで作ることはありますか?
要件によっては可能ですが、弊社ではデータベース中心の業務システムはPHPやNode.jsを基本にしています。Pythonはデータ処理やメディア処理など得意分野を切り出して使うことが多いです。
Excelで行っている集計をPythonで自動化できますか?
可能です。既存のExcelファイルを読み込んで集計し、結果を出力する処理はPythonの得意分野です。定期実行や他のシステムとの連携も含めてご提案します。
関連するサービス
関連する開発ガイド
監修: Unlogical Systems合同会社(杉並区・西荻窪)公開