nikkie-ftnextの日記

イベントレポートや読書メモを発信

XP祭り2023「小さなテクニカルプラクティスのワークショップ」参加者向け Python環境構築案内 #xpjug

はじめに

間に合わないよ〜1 nikkieです。

9/30(土)のXP祭り2023にて、ワークショップを実施します!2
ワークショップで必要になるPython環境についてこの記事で案内します

目次

小さなテクニカルプラクティスのワークショップ

このワークショップでは、テスト駆動開発リファクタリングそれぞれを「小さい」という観点で扱っていきます。
発表者が慣れているという都合で、使うツールはPython + VS Code

VS Codehttps://code.visualstudio.com/download からインストールすればよいですね。
Python環境構築について、この記事で案内します。

GitHub Codespaces

今回のワークショップの時間だけ使えるようにPython環境を構築する方法です。
以下の方にオススメ

  • PythonVS Codeもふだん使っていないよ
  • VS Codeはふだん使っているけど、Pythonはふだん使っていないよ

今回のワークショップのリポジトリにブラウザでアクセス!
https://github.com/ftnext/small-technical-2023

画像のように操作し、codespaceを作りましょう!3

VS CodeのようなUIがブラウザで立ち上がります。
また、シェルを叩くと、Pythonがインストール済みです(python -V)。
ブラウザで開発できるなんて、便利な時代になったものです〜

お値段が気になるかもしれませんが、毎月の無料利用枠があります!
ワークショップやその前後の時間(=3-4時間)の動かすだけなら無料枠の中で使えるはずです

利用が終わったら止めましょう。
親切設計になっていて、10分くらい放置すると自動で止まった体験があります。

ワークショップ中は私のcodespaceを参加者にもアクセスできるようにする予定です(Live Share)。
これでペアプロもできるんじゃないかな〜、楽しみ〜

ローカル開発環境構築

ふだんPythonを使っている方はワークショップのリポジトリをcloneしてローカル環境で動かす参加スタイルもありです。
ふだんPythonを使っていないけれどこの機にPythonの環境を構築してみたいという方、素晴らしいです!
以下に参考情報を記します。

Pythonのインストール

私はふだん複数のPythonのバージョンを使い分ける必要があるのでpyenvを使っています。
一方このワークショップのためにPythonの環境を構築する場合は、公式のインストーラを使うのがいいのではないかと思います。
初手pyenvは難しくしすぎているきらいがあるためです。

インストーラの手順に従ってPythonをインストールしましょう!(9月時点の最新は3.11.xで、3.12というやつはもうちょっとだけお待ちください)
先人が残した解説へのリンク集を作っておきます(ありがたや〜。どちらか参照ください)。

仮想環境

Pythonには便利なサードパーティライブラリがいくつもあり、これらを利用して開発していけます(とっても楽しい!)。
サードパーティのライブラリも(Python同様に)インストールする必要があり、ライブラリを管理するツールがいくつかあります。

今回のワークショップを機に環境構築されるのでしたら、私は仮想環境を作ってpip installしていくのをオススメします。
Python仮想環境とはディレクトで、Node.jsでいうnode_modulesに相当します。
インストールしたサードパーティライブラリは仮想環境(のディレクトリ)に配置されるのです。
Node.jsだとnpm(など)のツールがnode_modulesディレクトリ以下を管理してくれると思いますが4Pythonではその管理は人力5です6

具体的な手順は先人の解説に譲ります(ありがたい限りですね)。

Windows

macOS

また最近見た中でよさそうだった資料です。

終わりに

XP祭りワークショップに向けたPython環境構築案内でした。
ワークショップ参加者の方には当日会場で多少サポートはできるかなと思います。
PCだけは忘れずにご持参いただければ〜🙏


  1. 最近ハマっているアニメより 引用 です
  2. 解説 https://speakerdeck.com/dzeyelid/vs-code-con-2023-github-codespaces-introduction?slide=21
  3. Pythonに比べてNode.jsは理解が浅いので間違ったこと書いていたら教えてください〜
  4. みんな大人なんだから✨人力✨でも全然いけるよね?(たぶんそんなことはなくて、PoetryやPipenvなどpipをラップしたツールが登場しています)
  5. そうそう、Pythonでの依存ライブラリ管理について、ばんくしさんに10月のみんなのPython勉強会で話していただけます!『Pythonのパッケージ管理の中級者の壁を越えよう』 こちらの記事の方です