ChatGTP プログラミング学習

【初心者向け】VSCodeとGitHubを使ったPythonプロジェクト管理入門

記事内に商品プロモーションを含む場合があります

Pythonでの開発を効率よく進めるには、コード管理ツールの活用が欠かせません。特に、VSCodeやGit、GitHubを使うことで、チーム開発やバージョン管理が簡単に行えます。この記事では、初心者向けに、VSCodeとGitを使ってPythonプロジェクトを管理し、GitHubにプッシュするまでの手順を丁寧に解説します。これからPythonで開発を始めたい方や、プロジェクト管理の基礎を学びたい方にぴったりの内容です!

このガイドを参考にすれば、コード管理の仕組みを理解し、自信を持って開発を進められるようになります。GitやGitHubに初めて触れる方でも安心して取り組めるよう、図解や具体的なコマンドを交えて進めていきます。ぜひ一緒に学びながら、実際にプロジェクトを進めてみましょう!

このブログで、VSCodeとGitHubを使ったPythonプロジェクト管理とDiscode botが作れるようになります

GitとGitHubって何?

Gitは、ソフトウェア開発で使われるバージョン管理システムです。コードの変更履歴を追跡し、異なるバージョンを管理することで、開発の過程で過去の状態に戻ったり、複数の開発者が同時に作業することができます。

一方、GitHubはそのGitを利用して、コードをオンラインでホストできるプラットフォームです。GitHubを使うと、リモートで他の人と一緒に開発を進めたり、プロジェクトを公開して他の開発者と共有することができます。Gitはローカルで作業を

VSCodeの設定とGitのインテグレーション

  • VSCodeはGitとの連携が強力で、コードを書きながら直接リポジトリ管理ができます。
  • まず、VSCodeにGitの拡張機能がインストールされていることを確認してください(通常はデフォルトでインストールされています)。

Pythonプロジェクトの作成

Gitを使ったバージョン管理は、Pythonプロジェクトをスムーズに進めるための基本です。さらにGitHub Actionsを活用することで、自動化も可能に!プロジェクトの効率を最大限に引き上げる方法を解説しています。

詳しい手順やヒントが知りたい方は、ぜひこちらの記事をチェックしてください👇

新しい機能を追加しながら管理

これでGitとVSCodeを使った基本的なワークフローができあがりました。次に新しい機能を追加する際の流れは以下のように進めます。

基本の流れ

  1. VSCodeでコードを書くmain.pyに新しい機能を追加)
  2. Gitで変更を管理git addgit commit
  3. GitHubにプッシュgit push
  4. VSCodeのGitツールを活用して、管理を視覚的に行う

新しい機能の追加

VScodeでこの操作をやりましょう

例えば、ping コマンドを main.py に追加します。

変更をGitにステージング、コミット、GitHubへプッシュ

Gitでこの操作をやりましょう

変更を反映させるには、先ほどと同じようにgit addgit commitgit pushを使ってGitHubにプッシュします。

VSCodeのGitツールを活用して、管理を視覚的に行う

VSCodeでは、左側の「ソース管理」ビューを使用することで、GUIでファイルの変更をイカの画像のように確認することができます。

Pythonプロジェクトの作成

Discordのbotの開発を進める際、main.py の構成を将来の機能追加やバージョンアップに柔軟に対応させるためのポイントを整理しておきましょう。Discordのbotを作成する際に、どのようにコードを整理し、機能を追加していくかの具体的なイメージを持てるように、シンプルなプロジェクト構造を使って説明します。

プロジェクトの基本構造

まず、ディレクトリとファイル構造の例を示します。

ファイルを作成しよう

コマンドプロンプトを開く

  • Windowsキー + R を押し、「ファイル名を指定して実行」ダイアログで cmd と入力し、Enter を押します。

commandsevents ディレクトリを作成

__init__.py ファイルを作成

main.py の作成

main.py には、Botの初期設定や、コマンドやイベントを読み込むためのコードを記述します。Botのメインロジックはここに集中させず、各機能は他のファイルに分けて読み込むようにします。

コマンドを作成する (commands/hello.py)

ここで、簡単な "hello" コマンドを作成します。このファイルは commands/hello.py に保存されます。

ファイルの作成

次に、commands/ フォルダ内に hello.py ファイルを作成します。コマンドラインやターミナルで以下のコマンドを使って新しいディレクトリとファイルを作成します。

ファイルにコードを追加

commands/hello.py ファイルに "hello" コマンドを実装します。以下のコードを hello.py ファイルに書き込みます。

ファイルのステージング

Gitで新しく作成したファイルをリポジトリに追加するためには、まずステージングエリアに追加します。以下のコマンドを実行します。

これで、commands/hello.py ファイルがステージングエリアに追加されました。

コミットの作成

次に、ステージングエリアに追加されたファイルをコミットします。コミットメッセージを付けて、変更を記録します。

リモートリポジトリへのプッシュ (オプション)

もしリモートリポジトリ(GitHubなど)を使っている場合は、変更をリモートにプッシュすることができます。最初にリモートリポジトリを設定していない場合は、以下のコマンドでリモートリポジトリを追加します

すでにリモートが設定されている場合は、単に以下のコマンドでプッシュします。

ポイント

  1. mkdirtouch でファイルやディレクトリを作成
  2. git add でファイルをステージング
  3. git commit で変更をコミット
  4. git push でリモートリポジトリにプッシュ

これで、commands/hello.py ファイルを作成し、Gitを使ってコミットとリモートプッシュまでの操作が完了します。

イベントを作成する (events/on_ready.py)

次に、Botが起動したときにメッセージを表示するイベントを作成します。これは events/on_ready.py に保存します。
ファイルの作成方法は先程と同様になります。

ファイルの作成

まず、コマンドラインやターミナルで events ディレクトリを作成し、その中に on_ready.py ファイルを作成します。

on_ready.py ファイルにコードを追加

on_ready.py ファイルに、Botが起動したときにメッセージを表示するイベントリスナーを実装します。以下のコードをファイルに追加してください。

ファイルのステージング

Gitで新しく作成したファイルをリポジトリに追加するためには、まずステージングエリアに追加します。以下のコマンドを実行します。

コミットの作成

次に、ステージングエリアに追加されたファイルをコミットします。コミットメッセージを付けて、変更を記録します。

リモートリポジトリへのプッシュ (オプション)

すでにリモートが設定されている場合は、単に以下のコマンドでプッシュします。

ユーティリティ関数 (utils/logging_setup.py)

ログ設定など、共通で使うユーティリティ関数をまとめておくことも可能です。これにより、どのファイルからも簡単に共通の機能を呼び出せます。

utils ディレクトリの作成

まず、utils ディレクトリを作成し、その中に logging_setup.py ファイルを作成します。コマンドラインやターミナルで以下の操作を行います。

logging_setup.py ファイルにコードを追加

logging_setup.py ファイルに、ログ設定を行うためのコードを追加します。このコードは、ログの設定を行い、どのファイルからも呼び出すことができるようにします。

logging_setup.py の使用例

作成したログ設定を他のファイルから呼び出す場合の例です。例えば main.py でこのログ設定を使用する場合、以下のように呼び出します。

ファイルをGitにステージング

作成した utils/logging_setup.py ファイルをGitに追加します。

コミットの作成

ステージングエリアに追加したファイルをコミットします。

リモートリポジトリへのプッシュ (オプション)

リモートリポジトリを使っている場合、変更をプッシュします。

.env ファイル

トークンなどの機密情報は .env ファイルに格納して、環境変数として読み込みます。このファイルはGitにはコミットしません。

.env ファイルの作成

まず、プロジェクトのルートディレクトリに .env ファイルを作成します。コマンドラインやターミナルで以下のコマンドを実行して .env ファイルを作成します。

.env ファイルに機密情報を記述

.env ファイルには、BotトークンやAPIキーなどの機密情報を記述します。以下はDiscordのBotトークンの例です。

ここで DISCORD_TOKEN は変数名であり、your_discord_token_here の部分には実際のトークンを記入します。

.env ファイルから環境変数を読み込む

Pythonコードで .env ファイルから環境変数を読み込むには、python-dotenv ライブラリを使用します。このライブラリがインストールされていない場合、以下のコマンドでインストールします。

次に、main.py などのコード内で以下のようにして .env ファイルから環境変数を読み込みます。

.env ファイルをGitにコミットしないようにする

機密情報を含む .env ファイルをGitにコミットしないように、.gitignore ファイルに .env を追加します。以下のコマンドで .gitignore ファイルを作成し(または既にある場合は編集し)、.env を追加します。

.gitignore ファイルに以下の行を追加します。

これで、.env ファイルはGitで管理されなくなります。

すでにコミットしてしまった場合の対処

もし .env ファイルを誤ってGitにコミットしてしまった場合、次の手順で履歴から削除します。

.gitignore ファイルに .env を追加した後、以下のコマンドでキャッシュを削除します。

その後、再度コミットします。

最後に、リモートリポジトリへプッシュします。

よくでてくるエラーについて

git add .をした際に以下のようなエラーが良くでてきます。

このエラーは、Gitがファイルの改行コードに関する警告を表示しているものです。

原因:

  • CRLFとLFの違い: Windows環境では改行コードとしてCRLF(キャリッジリターン+ラインフィード)が使用されますが、UnixやLinux環境ではLF(ラインフィード)のみが使用されます。
  • Gitの設定: Gitはデフォルトで改行コードをLFに統一する設定になっている場合があります。そのため、CRLFの改行コードを持つファイルを検出すると、次回Gitがそのファイルを処理する際にCRLFがLFに置き換えられると警告します。

Windowsを使用している場合は、次のコマンドを実行してGitの改行コードの自動変換を有効にすることが推奨されます。

この設定の効果:

  • チェックアウト時: Gitはリポジトリ内のテキストファイルのLF(ラインフィード)の改行コードを、Windowsの標準であるCRLF(キャリッジリターン+ラインフィード)に変換します。
  • コミット時: 作業ディレクトリ内のテキストファイルのCRLFを、リポジトリに保存する際にLFに変換します。

メリット:

  • 環境間の互換性: WindowsとUnix/Linux環境で共同作業を行う場合、改行コードの違いによる差分やコンフリクトを防ぐことができます。
  • コードの一貫性: リポジトリ内ではLFに統一されるため、コードベースが一貫した状態になります。

注意点:

  • バイナリファイルへの影響: この設定はテキストファイルにのみ適用されますが、ファイルの種類が正しく認識されない場合、バイナリファイルが壊れる可能性があります。必要に応じて、.gitattributesファイルでファイルの種類を指定してください。
  • 既存のファイルへの影響: 設定を変更した後、既存のファイルに対して改行コードの変換が行われるため、一時的に大量の変更が発生することがあります。

まとめ

この記事では、VSCode、Git、GitHubを使ってPythonプロジェクトを効率よく管理する方法を解説しました。初心者の方でも理解しやすいように、Gitの基本的な操作からGitHubへのプッシュ、さらにVSCodeでの操作を丁寧に説明しています。プロジェクトをスムーズに進めるためには、バージョン管理の重要性を理解し、正しく活用することが大切です。また、Discordのbot開発の例を通じて、プロジェクト構成やコード管理の方法についても学びました。

これで、Pythonプロジェクトの管理に自信を持って取り組めるはずです。ぜひ実際に手を動かしながら、学んだ知識を活かしてみてください。GitやGitHubを使いこなすことで、開発のスピードと効率が飛躍的に向上するでしょう!

次のステップとして、さらに高度な機能追加や、自動化ツールの活用などにも挑戦してみてくださいね。

もしわからないことがあれば、このブログやXに質問等を投げていただければと思います。また、コミュニティもやっっているのでそちらから質問を投げていただいても大丈夫ですよ!!

Xのアカウントはこちら

ダダのアカウント

Discordコミュニティ

ハピッツカフェ

プログラミングを視覚的に理解したい方やプログラミングで絵を書いてみたい方はUdemyで講座も作っているのでこちらも参考にしてみてください

Udemy講座

Processing Python講座

ChatGPTでPythonの学習を始めてみたい方は以下の記事を参考にしてみてください

ChatGPTはプログラミングの学習はできても、人のつながりまでは作ってくれません。
プログラミングの学習だけではなく、人との繋がりを作ってくれるスクールもオススメです。
気になる方は無料相談からでも体験してみてください!!

テックアカデミー無料メンター相談

-ChatGTP, プログラミング学習
-, , , , , ,