Windows環境でGitとvenvを使ってみる

2023-05-25(木)

前回のWindowsでのPython環境構築をやった続き。

やること

  • gitコマンドを使ってGitHubからソースを持ってくる
  • venvで専用の環境を作って動かす

Gitについて雑な説明

Gitは何かしらのプロジェクトで作成したプログラムのソース(とデータ)を管理するツールで,GitHubはGitに対応したサーバーを提供するサービス。程度の認識でよい。プログラムを作ってる側の視点だと

  1. プログラムを書く
  2. Gitコマンドで更新内容を記録する
  3. GitHubに送る(公開にも非公開にもできる)
  4. 開発を続けてプログラムを更新する
  5. Gitコマンドで更新内容を記録する
  6. GitHubに送る

みたいな感じで,手元にもGitHubにもプログラムと更新の記録が残るので,

  • 何かやらかしたので前のバージョンに戻す
  • 本流には入れずに取り敢えず試しに実装してみる(ブランチ)
  • 別ブランチの更新内容を取り入れる
  • 区切りを付ける(タグ)

のような感じで便利なためよく使われている。

  • 自分の考えた処理・手法を公開できる
  • 他の人から「こう直してくれ」と要望を送って貰える(プルリク)
  • 他の人が引き継いでそれに手を加える(fork)

のような側面もあり,使う側にとっては

  • アルゴリズムしか公開されていない手法を再実装しないで済む
  • よく使うツールの開発に貢献できる
  • 開発が停止してしまったツールを自分で更新できる

といった利点もある。

その他大量のサービスがあるので興味のある人は調べると良い。(このBlogっぽいWebもGitHubのサービスの一環)

Git for Windows

配布もとから64bitのstandaloneインストーラをダウンロードしてインストール。 設定は全部デフォルトで問題ない。

PATHが自動的に設定されるが,インストール後に起動したプログラムにしか適用されないので,コマンドプロンプトのためにターミナルを起動している人は一旦閉じる。

PySimpleGUIのソースを拾ってくる

ここでは簡単にGUIなプログラムが作れるらしいPySimpleGUI を試す。パッケージ自体はpipコマンドでインストールできるのだが、デモ等のソースも見ると勉強になるので拾ってくる。

cmdでコマンドプロンプトを起動したら,

cd Documents
git clone https://github.com/PySimpleGUI/PySimpleGUI.git

で,PySimpleGUIフォルダにGitHubで公開されているソースコードがダウンロードできた(git pullコマンドで常に最新の状態に保つこともできるのが zipファイルでダウンロードする方法との違い)

PySimpleGUIは設定プログラム(?)をいきなり試せるので起動してみる。

py PySimpleGUI\PySimpleGUI.py

でウィンドウが開いたら成功。 ざっと試してウィンドウを閉じる。

venv

前回最後に触れたvenvを使って仮想環境を作る。 ↓のvenvのあとのvenvPySimpleGUIは仮想環境名なので、別のパッケージ用に仮想環境を作るときは都度名前を変える。

cd PySimpleGUI
py -m venv venvPySimpleGUI
.\venvPySimpleGUI\Scripts\activate
py -m pip install -U pip

としたあとで本体とデモビューワ、あと使いそうなパッケージを入れる。

py -m pip install PySimpleGUI psgdemos
py -m pip install opencv-python matplotlib pymunk psutil prawn weather2 mido python-vlc

で完了。 ( python-vlcはコントロールだけなので、 VLCは別途インストールが必要。)

Windows+venvを使うと、ScriptsフォルダへPathが設定される利点もある。psgdemosもその一例でvenvの中のScriptsフォルダの中にScriptsと言いつつ.exeファイルが置いてある。

psgdemos

でデモの一覧が出てくるので色々試すと良い。

None

OpenCV関係もあり,使い方は先程入手したソースのDemoProgramsの中にあるので,参考にできる。

日本語のドキュメントもあるので恵まれている。

Category: Memo Tagged: Python Windows