Pythonはシンプルで読みやすい文法を持ち、初心者でも扱いやすいプログラミング言語です。多数のライブラリが提供されており、コマンドプロンプトで動作するAIプログラムからデスクトップアプリケーションまで、幅広い開発で使われています。
画面の操作性を重視したデスクトップアプリの場合はC#が最適ですが、処理の自動化が主な目的で、それを実行するための簡単な画面があれば十分というケースでは、Pythonに軍配が上がります。
本記事では、Pythonを使った自動化ツールの開発に挑戦したいDIYプログラマーを対象に、最初の一歩を踏み出すために必要な情報を紹介致します。
はじめに
DIYプログラミングの魅力
プログラミングDIYは、自分のアイデアを形にする創造的な活動です。
自分だけのツールやアプリケーションを作成することで、日常の問題解決や作業効率の向上を図れるのはもちろん、学習意欲を高め、達成感を得ることもできます。
プログラミングを通じて自分のアイデアを実現する喜びは、他に代えがたいものがあります。また、プログラミングスキルは、現代社会において非常に価値のあるスキルであり、自己成長やキャリアアップにもつながります。
Pythonを選ぶ理由
数あるプログラミング言語の中で、Pythonは特に初心者に優しい言語として知られています。シンプルで読みやすい文法を持ち、コードを書くのが楽しいと感じられることが多いです。
また、Pythonは非常に多目的に使える言語であり、ウェブ開発、データ解析、機械学習、デスクトップアプリケーションの開発など、様々な分野で利用されています。
豊富なライブラリとコミュニティサポートもあり、学習しやすい環境が整っています。
Pythonとは
Pythonの概要
Pythonは、オランダ出身のアメリカ在住プログラマー「グイド・ヴァンロッサム」によって、1991年に開発された高水準プログラミング言語です。オープンソースであり、誰でも無料で使用することができます。
Pythonは、そのシンプルで直感的な文法と強力な標準ライブラリによって、初心者からプロフェッショナルまで幅広い層に支持されています。
Pythonの特徴と利点
- 読みやすいコード
Pythonは、読みやすいコードを書くことを重視して設計されています。インデントによるブロック構造や、英語に近いキーワードを使用することで、他のプログラミング言語と比較してコードが直感的です。 - 豊富なライブラリ
Pythonは標準ライブラリが充実しており、さまざまな機能を簡単に利用することができます。また、サードパーティのライブラリも非常に多く、様々な用途に対応したツールが揃っています。 - マルチパラダイム
Pythonは、オブジェクト指向プログラミング、関数型プログラミング、手続き型プログラミングなど、複数のプログラミングパラダイムをサポートしています。 - クロスプラットフォーム
Pythonは、Windows、macOS、Linuxなど、さまざまなプラットフォームで動作します。これにより、開発環境を選ばずに使用することができます。 - コミュニティサポート
世界中に活発な開発者コミュニティが存在し、質問や問題解決のためのリソースが豊富にあります。公式ドキュメントも充実しており、学習しやすい環境が整っています。
PythonによるDIYプログラミングの環境準備
Pythonをインストールする
まず、Pythonを使用するためには、Python配布サイトからインストーラーをダウンロードし、インストールする必要があります。
Pythonを配布しているサイトは4つほどあり、それぞれ特徴が異なります。ちなみに、Python自身は無料ですが、商用利用でAnacondaからPyhtonをインストールする場合のみ、ライセンス料が発生します。
配布サイト | インストールの特徴 |
---|---|
本家Python | 最新のPythonを入手したい場合は本家Pythonのインストーラーを使う。 ライブラリは最低限しかインストールされないので、必要に応じて自分でインストールが必要。 配布サイト:https://www.python.jp/install/windows/install.html |
Anaconda | 本家から最新版Pythonがリリースされた後、しばらくして配布される。 Pythonと合わせて機械学習に必要な一通りのライブラリがインストールされる。 配布サイト:https://www.anaconda.com/download |
Miniconda | Anacondaから機械学習に必要なライブラリを抜いたもの。 ライブラリは最低限しかインストールされないので、必要に応じて自分でインストールが必要。 配布サイト:https://docs.anaconda.com/free/miniconda/ |
WinPython | 本家から最新版Pythonがリリースされた後、しばらくして配布される。 USBに入れて持ち運びできるようなポータブルなPython環境を作ることができる。 配布サイト:https://sourceforge.net/projects/winpython/files/ |
より詳しくい説明とインストール方法は、「【初心者必見】Pythonインストールはどれを選べばいい?(Windows)」の記事に記載していますので、そちらをご覧ください。
AnacondaとMinicondaには、conda と呼ばれる強力な仮想環境構築ツール(後述)が付属しています。
開発ツール(コードエディタ)をインストールする
Pythonでの開発を快適に行うためには、自分に合った開発ツールを選定することが重要です。今回は、その中でも特に人気が高いPython開発環境を4つご紹介します。
Visual Studio Code
Microsoftが提供する無料のコードエディタで、豊富な拡張機能が特徴です。Pythonの拡張機能をインストールすることで、コード補完、デバッグ、Linting(コードの静的解析)など、様々な機能が利用できます。
https://code.visualstudio.com/
PyCharm
JetBrainsが提供するPython専用のIDEで、強力なデバッグ機能やコードナビゲーション機能が特徴です。無料版のCommunity Editionと、有料版のProfessional Editionがあります。
https://www.jetbrains.com/ja-jp/pycharm/
Sublime Text
軽量で高速なコードエディタで、シンプルなUIが特徴です。Python開発向けのパッケージも多数用意されています。
Visual Studio Community
マイクロソフトが無料で提供する統合開発環境(IDE)です。Windows、macOS、Linuxに対応しており、個人開発者や学生であれば無償で利用できます。
https://visualstudio.microsoft.com/ja/vs/community/
必要なライブラリをインストールする
ライブラリは pip コマンドを使います。Python は、Python自身のバージョンとライブラリのバージョンの組み合わせに相性があり、バージョンを誤るとエラーで動作しないこともしばしばあります。
そのため、インストール時に最新のバージョンをインストールする方法と、ライブラリのバージョンを指定する方法の2通りが用意されています。
pip install ライブラリ名
pip install ライブラリ名 == バージョン
pip install pandas
pip install pandas==1.3.3
仮想環境を作る(必要に応じて)
Python自身は進化し続けていますが、それにも増してライブラリの進化は激しく、バージョンによって過去の関数が削除されたり、動作が変わることもめずらしくありません。
このことにより、ある時点で動作していたプログラムが、ライブラリのバージョンを変えたことで急に動作しなくなることを「依存関係がある」と表現しますが、開発者にとって厄介な問題でした。
仮想環境は、Pythonのプロジェクトごとに独立したパッケージ管理と依存関係を設定するための仕組みです。これにより、異なるプロジェクトで使用するライブラリのバージョンが競合することなく、各プロジェクトごとに適切な環境を保つことができます。
Pythonのプロジェクトとは、作成対象のプログラムに必要なソースコード一式が格納されたフォルダのことを指します。このフォルダには、ソースコードだけでなく、プロジェクトに必要な設定ファイルや依存関係を管理するためのファイルも含まれます。
Python配布先 | コマンド | 仮想環境の特徴 |
---|---|---|
Anaconda miniconda | conda | 仮想環境では、Pythonバージョン、ライブラリバージョンともに自由に指定が可能。 |
本家Python WinPython | venv | 仮想環境では、インストールしたPythonのバージョンが引き継がれる。 ライブラリバージョンは仮想環境ごとに指定が可能。 |
以下はAnaconda/miniconda/本家Python/WinPythonにおける仮想環境コマンドの使い方を一覧にまとめたものです。
Anaconda/miniconda | 本家Python/WinPython | |
---|---|---|
仮想環境の作成 | conda create --name myenv | python -m venv myenv |
仮想環境の削除 | conda remove --name myenv--all | myenvフォルダを削除 |
仮想環境のコピー | conda create --name new_env--clone myenv | myenv\Scripts\activate pip freeze > requirements.txt python -m venv new_env new_env\Scripts\activate pip install -r requirements.txt |
仮想環境に入る | conda activate myenv | myenv\Scripts\activate |
仮想環境から抜ける | conda deactivate | deactivate |
ライブラリ一覧の表示 | conda list | pip list |
よく使うライブラリの紹介
GUI画面の作成に便利なライブラリ
Python には、画面を作成するための標準ライブラリとして Tkinter が含まれています。但しデザインが少し古いため、見栄えの良い画面が作成可能なライブラリもいろいろと登場しています。
ここでは、その中から3つを紹介しておきます。
Tkinter
Tkinter は、Python に標準搭載されている GUI ライブラリです。シンプルで軽量なため、初心者でも扱いやすいのが特徴です。また、豊富なライブラリと長い歴史を持つため、情報の入手が容易です。
特徴:
- 軽量でシンプル
- 標準搭載なのでインストール不要
- 豊富なライブラリと情報量
- 初心者向け
向き不向き:
- 高度なデザインには向かない
- モバイルアプリ開発には不向き
Flet
Flet は、Flutter をベースとした Python 製 GUI ライブラリです。Flutter の高パフォーマンスな UI を Python で利用できるのが特徴です。また、Web アプリだけでなく、モバイルアプリやデスクトップアプリも開発できます。
特徴:
- Flutter の高パフォーマンスな UI を利用可能
- Web アプリ、モバイルアプリ、デスクトップアプリを開発可能
- ホットリロード機能による開発効率の向上
- 豊富なコンポーネントとウィジェット
向き不向き:
- 相対的に新しいフレームワークなので、情報量が少ない
- Tkinter に比べると複雑
Gradio
Gradio は、機械学習やデータサイエンス向けの GUI をWebアプリとして作成できるライブラリです。
Webアプリでありながら、ドラッグ&ドロップで画像やファイルを指定することが可能です。
教師なし学習、画像分類、自然言語処理など、様々なタスクに特化したデモが作成できるよう、テーブル形式のデータ表示やグラフ描画にも対応しています。
特徴:
- 機械学習/データサイエンス向けの UI を簡単に作成可能
- Stable Diffusion などの生成AI向けUIで採用が多い
- Hugging Face にデプロイ可能
- クラウドサービスとの連携
向き不向き:
- 一般的な GUI 開発には、あまり向かない
- 画面デザインの自由度が低い
データベースを扱う時に便利なライブラリ
以下は、データベースに接続するために必要なライブラリと、データベースにデータを登録する際に知っておくと便利な方法を紹介した記事の一覧です。
PostgreSQL | 【 Python 】psycopg2でPostgreSQLにアクセスしよう! |
---|---|
【詳しく解説】PostgreSQLにおけるUpsertの書き方(サンプル付き) | |
PostgreSQLに1回のinsertで複数データ登録 by Python | |
【 コピペでOK】9割の機能を網羅!PythonからPostgreSQLを扱うクラスを作ってみました。 |
Oracle | 【 Python 】cx_OracleでOracleにアクセスしよう! |
---|---|
【詳しく解説】OracleにおけるUpsertの書き方(サンプル付き) | |
【コピペでOK】9割の機能を網羅!PytonからOracleを扱うクラスを作ってみました。 |
SQLite | 【実用】WindowsのPythonからSQLiteを使う |
---|---|
【詳しく解説】SQLiteにおけるUpsertの書き方(サンプル付き) | |
【コピペで完了】9割の機能を網羅!PytonからSQLiteを扱うクラスを作ってみました。 |
SQLServer | 【 Python 】pyodbcでSQLServerにアクセスしよう! |
---|---|
【詳しく解説】SQL ServerにおけるUpsertの書き方(サンプル付き) | |
【コピペでOK】9割の機能を網羅!PytonからSQLServerを扱うクラスを作ってみました。 | |
MySQL | 【 Python 】mysqlclientでMySQLにアクセスしよう! |
---|---|
【詳しく解説】MySQLにおけるUpsertの書き方(サンプル付き) | |
【 コピペでOK】9割の機能を網羅!PytonからMySQLを扱うクラスを作ってみました。 |
機械学習・AI
以下は機械学習やAI関連のライブラリに関する記事の一覧です。
その他の参考記事
以下は本ブログで扱っているライブラリの使い方を紹介している記事です。
Pytyonのサンプルプログラム
これからPythonでDIYプログラミングを始める方のために、具体的なイメージが分かるサンプルプログラムを紹介します。
CSVを読み込んでグラフを表示するサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import pandas as pd import matplotlib.pyplot as plt # CSVファイルの読み込み df = pd.read_csv('sample.csv') # 列名をリストに取得 columns = df.columns.tolist() # すべて列を折れ線グラフで描画 for col in columns: plt.plot(df[col]) # グラフの表示 plt.show() |
指定フォルダに存在するファイル数と総容量を階層下まで計算、表示するサンプル
フォルダパスを入力してください: o:/testdata
o:/testdata: 0 files, 0 bytes
o:/testdata\CSV: 6 files, 2892479 bytes
o:/testdata\Face: 14 files, 5596317 bytes
o:/testdata\Movie: 25 files, 240422785 bytes
o:/testdata\Output: 29 files, 249827142 bytes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import os def get_file_info(path): file_count = 0 total_size = 0 for root, _, files in os.walk(path): for file in files: file_count += 1 file_path = os.path.join(root, file) if os.path.isfile(file_path): total_size += os.path.getsize(file_path) print(f"{root}: {file_count} files, {total_size} bytes") return file_count, total_size if __name__ == "__main__": target_dir = input("フォルダパスを入力してください: ") get_file_info(target_dir) |
まとめ
Pythonは初心者にも親しみやすいプログラミング言語であり、豊富なライブラリと幅広い用途で利用されており、簡単な画面で済むような、軽量ツール作成には最適です。
本記事では、次の内容について解説しました。
- Pythonのインストール方法
- 開発ツールの選定
- 必要なライブラリのインストール方法
- 仮想環境の利用法
- GUIの作成方法
- 簡単なプログラミング例
Pythonを使ったDIYプログラミングは、C#よりも敷居が低く手軽に始められます。これを機に、是非チャレンジしてみてください。
コメント