daisukeの技術ブログ

AI、機械学習、最適化、Pythonなどについて、技術調査、技術書の理解した内容、ソフトウェア/ツール作成について書いていきます

【解説】開発環境の構築手順(用途:AI関連、Python)

自宅で開発する環境の構築手順をまとめておこうと思います。

使用しているパソコンは平均以下のスペックで、Windows10を使用しています。ローカルPCで、AIの学習やLinux仮想環境を使うのは厳しいため、基本的に無料の範囲でクラウドサービスを活用した環境にしたいと思います。

開発環境の概要

想定する開発環境:Googleドライブ+Google Colaboratory+GitHub

  • ローカルPCはWindows10のノートパソコン
  • 基本的には、Google Colaboratoryを使って、ソースコードを実装する
  • 実装が完了したら、Google ColaboratoryからPythonファイルをエクスポートする
  • 機能が確認できたら、GitHubにpushする

他の選択肢

  • 仮想環境(WSL2、VirtualBoxなど)
    • ローカルPCが非力なので、考えない
  • Google Cloud Shell+Jupyter notebook+GitHub
    • Google Cloud Shellの概要
      • Googleのサービスで、ブラウザ上で、Linuxシェルを無料で使える
      • LinuxはDebian系で、GUIは無し
      • Googleのユーザとして、5GBのホームディレクトリが用意される(ただし、120日間アクセスが無いと削除される、事前にメールで通知あり)
      • 1週間の利用時間は50時間まで
      • ログインしたら新規インスタンスが作られ、ログアウトでインスタンスは削除される、簡単なテストなどに向いてると思う
      • あらかじめ、Git、Pythonなどの開発ツールがある程度インストールされており、必要に応じてインストールできる
      • Googleドライブはマウントできないらしい(ホント?)
    • やりたいことがPython以外にできた場合に、この環境を構築してみる

具体的な手順

Googleドライブの準備

パソコン版Googleドライブのインストール

Googleドライブは、ブラウザでファイルを操作する必要がありますが、とても大変です。そこで、Windowsのエクスプローラで、Googleドライブのファイルを操作できるように、パソコン版Googleドライブをインストールします。大量のファイルを操作すると、同期に時間がかかるため、注意が必要です。インストールは以下のリンクでインストール用のファイルをダウンロードして実行すればOKです。

support.google.com

  • パソコン版Googleドライブをインストールして、「起動」を押すと「Googleドライブへようこそ」という画面が表示されるので、「開始」を押す
  • Google Colaboratoryで使用するGoogleアカウントでログインする(パソコン版Googleドライブは最大で4アカウント切り替えて使えるらしい)
  • 動作確認のため、ローカルPC上で、新規にGitHubというディレクトリを作り、test.pyというファイルを作った
  • 同期をとるディレクトリとして、今作成したディレクトリを指定した
    • デフォルトで用意されているクラウド上のGoogleドライブは「マイドライブ」がトップディレクトリとなるみたい
    • 同期するディレクトリを指定した場合、「パソコン」がトップディレクトリになるみたい
    • Googleドライブを確認したところ、ローカルPCで作成したtest.pyがあることを確認できた

Googleドライブで同期が確認できた
Googleドライブで同期が確認できた

パソコン版Googleドライブの複数アカウントの使い方
  • WindowsのメニューからGoogle Driveを起動、もしくは、システムトレイのGoogleドライブをクリックして、設定アイコンをクリック
  • Googleドライブの設定というウィンドウが起動するので、右上のユーザのアイコンをクリックして別アカウントを追加をクリック
  • 別アカウントでログインすると、ローカルPCのドライブにそのアカウントのGoogleドライブがマウントされる

Google Colaboratoryの起動

  • ブラウザで、今回使用するGoogleアカウントでログインする
  • Googleの検索のトップページで、ドライブのアイコンをクリック
  • 右のサイドバーの「+」をクリック
  • 「Colab」で検索して、インストールする
  • 左のサイドバーのマイドライブで右クリック→その他→Google Colaboratoryをクリック、Google Colaboratoryが起動する(マイドライブ直下にUntitled.ipynbというファイル名で作られる)
  • ただし、起動したGoogle Colaboratoryのカレントディレクトリは、一時的に作られた環境(実体はVMのUbuntuコンテナであり、セッションが切断されると環境は削除される)のディレクトリ(/content)であり、このディレクトリでファイルなどを出力しても消えてしまうので、Googleドライブをマウントして、そこに移動して作業を行う必要がある

Google Colaboratoryを起動できた
Google Colaboratoryを起動できた

GitHubのリポジトリの準備

GitHubのリポジトリの作成
  • GitHub(アカウントが必要なら作成してから)にログインして、右上の「+」をクリックして、New repositoryをクリックする
  • Repository nameに、任意のリポジトリ名(今回はexperimentとする)を入力する
  • Add a README fileにチェックを入れる
  • あとは任意に設定して、Create repositoryをクリック
  • ↓は作成したリポジトリ

github.com

GoogleドライブにGitHubの作業ディレクトリをチェックアウトして更新する
  • 想定していた開発環境のメモ

    • ローカルPCを操作して、GoogleドライブのディレクトリにGitHubの作業ディレクトリをチェックアウトして、Git操作はローカルで行う(Google ColaboratoryでGitの操作をするのは非常に効率が悪いため)。
    • Pythonの実装を行うときは、ブラウザから、Googleドライブに同期されているGitHubの作業ディレクトリにアクセスして、Google Colaboratoryを起動して実装を行う
    • しかし、ローカルでGit操作を行う場合、大きなリポジトリだと、Googleドライブへの同期が長い時間かかりそうなので、想定した開発環境は諦めた(仕方ないので、Google Colaboratory上でGit操作を行うことにする)
    • もし、ローカルPCに、WSLや、VirtualBoxなどで、Linux環境がある場合は、Googleドライブをマウントする方法でもよい(結局はファイル同期が長い時間かかるかもしれない)
    • 昔は、Googleドライブに、SSHで接続してシェル操作ができたらしいが、現在は禁止されている(ここ「https://research.google.com/colaboratory/faq.html#limitations-and-restrictions」に、SSHシェルが禁止であることが書かれている)
  • 具体的な手順

    • Git操作を行う専用のipynbファイルを用意する
      • この理由は、Pythonを実装したノートブックに、Git操作を行うセルが混在すると、あとでPythonファイルに出力したときに、その部分を削除したりする必要があることや、トークンの情報、ユーザー名、メールアドレスが、いろんなノートブックに残るのは、気分的によくない
      • GoogleドライブにGitHubというディレクトリを作成する
      • GitHubディレクトリで、Google Colaboratoryを起動する
      • ファイル名をgit.ipynbに変更する
    • Googleドライブに接続する
      • Google Colaboratoryの左のサイドバーのフォルダアイコンをクリック
      • 4つ並んでるアイコンの右から2番目のGoogleドライブのアイコンをクリックすると、許可するか聞かれるので、「Googleドライブに接続」をクリック
      • ディレクトリツリーに「drive」が出現する(この「drive」がGoogleドライブであり、1つ下に「MyDrive(マイドライブの別名)」が確認できる)
        Google Colaboratoryで、Googleドライブをマウント
        Google Colaboratoryで、Googleドライブをマウント
    • personal access tokenを取得する
      • 実行中のGoogle Colaboratoryはそのままにしておき、トークン(pushするときに必要になる)を取得しにいく
      • https://github.com/settings/tokens にアクセスする
      • 「Generate new token」をクリックして、「Generate new token(classic)」を選択する
      • Note:任意の文字列
      • Expansion:有効期間
      • Select scopes:repoだけでいい
      • Generate tokenをクリックする
      • トークンが発行されるので保存しておく
    • Git:clone、add、commit、push
      • まずは、Googleドライブの行きたいディレクトリに移動する
      • 下図のように、操作したいリポジトリをcloneして、必要な操作を行う
      • pushするには、ユーザ名、メールアドレスの設定が必要
      • pushするには、originの設定が必要であり、リポジトリのアドレスは「https://TOKEN@github.com/dk0893/experiment.git」と設定する(TOKENには↑で取得したpersonal access tokenを入力し、dk0893にはGitHubのアカウント名、experiment.gitにはpushしたいリポジトリ名を入力する)
      • pushする
  • 以下は、Git操作を行うノートブックの例です

git.ipynb

実行しているGoogle Colaboratoryのファイルを直接GitHubにコミットすることもできる
  • Google Colaboratoryで、ファイルメニューの「GitHubにコピーを保存」をクリック
  • 以下のような画面が出るので、OKを押すと、自分のGitHubのリポジトリに移動し、コミットされたことが確認できる(ノートブックだけを更新するだけなら、これでいいが、ノートブック以外のGit操作をするときに、結局は↑のような操作が必要になる)

Google Colaboratoryから直接GitHubにコミット
Google Colaboratoryから直接GitHubにコミット

Google Colaboratoryからコミットした内容をGitHubで確認した
Google Colaboratoryからコミットした内容をGitHubで確認した

Visual Studio Codeで、Pythonのデバッグを行う

GoogleドライブにSSHで接続できないため、ローカルPCでデバッグするしかないと思います。

パソコン版Googleドライブをインストールしたので、GoogleドライブがマウントされたローカルPCのドライブにアクセスすれば、普通にVSCodeでデバッグできました。

おわりに

今回は、無料で使える開発環境の手順の説明でした。

今回は以上です!

最後までお読みいただき、ありがとうございました。