ちょっとプロっぽいPythonプログラミングの学習環境の作り方

北九州でのプログラミングスクールはなんだかんだと半年くらいが経過して、月2回のペースではあるのですが、初歩の学習から次のステップに進みつつあります。

プログラミング講座はPythonで進めているのですが、学習の最初は、ひとまずAnacondaを導入してもらいました。とりあえず何でもできるPython環境を作るならAnacondaほど簡単なものはありません。
ただ、初歩から次のステップに進むとなると、もうちょっと欲が出てきます。(欲が出てきているのは講師だけだという気がしないでもないけど・・・。)

やっぱり、コマンドラインでの操作に慣れて欲しいし、Pythonだけじゃなくて例えばMySQL(もしくはMariaDB)を入れて、データベースプログラミングだというような話もあります。なので、もうちょっとプロっぽい開発環境を作ろうと。
そのやり方をまとめておきます。(ちなみに、プロっぽいをどう捉えるかとか、Dockerが入ってないとか、Anacondaのままでもできるとか、いろいろ異論はあると思いますが。多分に私の好みが入っています・・・。)

macOSとWindows(ハードウェア選び)

スクールでは使用するPC(or Mac)を限定していません。とりあえず手持ちのものを持ってきていただきます。あまりに古いとかスペックが低い場合は、スクールでは貸し出したり、購入相談にのったりということもしています。
もし購入するなら、スペックの目安はこんな感じ。

Mac

まずは最新のmacOSが対応している機種ということになります。現時点で最新のmacOS Montereyでは2015年以降に発売されたMacBook ProやMacBook Airに対応しているのですが、それではちょっと古すぎます。
だいたい、ここ2〜3年以内に発売されたモデルなら問題ないでしょう。メモリは8GBは必須。これから買うなら16GBは欲しいところですが、円安での値上がりが激しいのが気になります。SSDはあればあっただけ良いですが、256GBが最低限というところでしょうか。

また、最近のMacはM1またはM2というApple製のCPU(SoC)が搭載されています。これは以前のIntel CPUのモデルとは大幅な違いがあり、プログラミングする際も結構苦労します。ただ、新品では既にM1またはM2のMacしか売っていないし、私(講師)もM1 Proを搭載したMacBook Proを使っているので、そこはどうにかなります。(ここに書いている程度のことであれば、Intel Macでも、M1/M2 Macでも差はありません。)

Windows

CPUはCore i5かi7、できれば第10世代以降のものが良いでしょう。いくら中古で安くても、第5世代とか第6世代のi5は、分かった上で手を出すのでなければやめておいた方が良いです。(そもそもWindows 11が動かないでしょう。)
メモリは8GB、できれば16GB。SSDは256GBは欲しいところです。Windows 11が入っていれば尚可、Windows 10でもまぁ良いでしょう。

Windows機はありとあらゆるメーカーが出しているので機種選定に迷いますが、Microsoft謹製のSurfaceシリーズを買っておけばハズレを踏むことはありません。(Surface Goは特殊用途向けの低スペック機なので、分かった上でないと手を出さない方が良いです。私は好きなマシンですが・・・。Surface Laptop Goは普通に良いと思うんですけどね。)

WSL

Windowsで開発を行う場合は、WSL(Windows Subsystem for Linux)を導入し、その上でUbuntuというLinuxディストリビューションを動かすと、スムースに(Pythonとかの)開発環境を整えることができます。
導入方法は、Microsoftの公式のガイドを参照してください。

Homebrew

スクールでは、中級以上の方はHomebrewを入れてもらっています。Macの方は簡単に導入できます。Windowsの方はまずWSLを入れてUbuntuを使えるようにしてからHomebrewを入れます。

Homebrewは、Mac用またはLinux(WSLを含む)用のパッケージマネージャです。様々なアプリケーションをHomebrewを使って導入することができます。この後、Pythonをインストールするためにも使いますし、DBサーバをインストールするためにも使います。
Macの場合は、開発に使うVisual Studio CodeをはじめとするアプリケーションもHomebrewでインストールできます。

Mac

Macの方は下記を実行するだけで終わりです。
C言語でビルドする環境が必要なので、XcodeのCommand Line Toolsが入っていない場合は、ここで導入されます。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Windows(WSL)

Windows(WSL)の場合は、少し手順が増えます。(これ以降についても、ちょっとずつWSLの方が手順が多いです。)
まず、C言語でビルドする環境を導入します。

sudo apt install build-essential

次に、Macと同じようにHomebrewのインストールを行います。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

続いて、下記の手順を実行します。

test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile

詳しくは、公式サイトのマニュアルを参考にしましょう。

anyenv

今後、Pythonに限らず様々なプログラミング言語を使うことになるでしょう。一つの言語でも様々なバージョンを使い分ける必要もでてくるでしょう。プロになるならば。だったら、anyenvを入れましょう(asdfでも良いけど)。
anyenvを使うと、好きなだけプログラミング言語の、好きなだけのバージョンをインストールして、作業ディレクトリごとに使う言語とバージョンを使い分けられるようになります。

Mac

brew install anyenv
anyenv init

ここで表示される内容を、そのまま実行します。たいていの場合、.zshrcというファイルに何かを追記します。
追記が終わったら、ターミナルを再起動して、下記のコマンドを実行します。

anyenv install --init

Windows(WSL)

Manual git checkoutの方法を使います。

git clone https://github.com/anyenv/anyenv ~/.anyenv
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
~/.anyenv/bin/anyenv init

ここで表示される内容を、そのまま実行します。たいていの場合、.bash_profileというファイルに何かを追記します。
追記が終わったら、ターミナルを再起動して、下記のコマンドを実行します。

anyenv install --init

pyenv

anyenvの導入が終わったら、次にpyenvを導入します。pyenvをanyenv経由で導入すると、anyenvの配下でPythonのインストールやバージョンの使い分けができるようになります。

anyenv install pyenv

Python

pyenvの導入が終わったら、次はPythonの導入です。

pyenv install -l

とやると、いまインストールできるPythonのバージョン一覧が表示されます。例えば、Python 3.10.5を導入するなら、下記のようにします。

pyenv install 3.10.5

これでPython 3.10.5のインストールが始まります。Pythonのソースコードをダウンロードして手元の環境上でビルドするので、結構時間がかかったりします。

Windows(WSL)

Macの場合はPythonのビルドに必要なパッケージはHomebrewから自動でインストールされると思います。
Windows(WSL)の場合は、pyenv install 3.10.5をする前に、下記を実行しておきます。

sudo apt install make libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl libncursesw5-dev xz-utils libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

使用するバージョンの指定

pyenvを使うと複数のバージョンのPythonをインストールして使い分けることができます。
例えば、いまインストールしたPython 3.10.5を常に使用したい場合は、下記のようにします。

pyenv global 3.10.5

ただ、もともとシステムデフォルトのバージョンのPythonが入っていることもあるので、globalはあまり使わない方が良いでしょう。
そこで、プログラミング作業を行うディレクトリを作って、そのディレクトリではPython 3.10.5を使うといった設定の方が良いでしょう。

mkdir (使用する作業ディレクトリ)
cd (使用する作業ディレクトリ)
pyenv local 3.10.5

pyenvでlocalと指定すると、そのディレクトリ配下では指定したバージョンのPythonが動作するようになります。

Visual Studio Code

プログラムを書くエディタ(というより統合開発環境)としてVisual Studio Codeを使っています。WindowsでもMacでも同じように動作するので便利です。
先に触れたとおりMacの場合はHomebrewでインストールすることができます。

brew install --cask visual-studio-code

黒い画面(ターミナル)に慣れたら、Visual Studio CodeはスタートメニューやLaunchPadから起動している場合ではありません。

cd (使用する作業ディレクトリ)
code .

これだけです。code .とやると、その作業ディレクトリを開いた状態でVisual Studio Codeが開きます。

次にやることは・・・

これで(プロっぽい)プログラミングの学習環境は整いました。
後は、学習に移りましょう。例えばFlaskを使ってWebサイトはWeb APIを作るなら、こんな感じでプロジェクトディレクトリを作って、仮想環境を作るのがベストでしょう。

cd (使用する作業ディレクトリ)
mkdir flask-study ← Flaskの学習を行うためのプロジェクトディレクトリ
cd flask-study
python -m venv venv
. venv/bin/activate
pip install Flask
code .

かなりプロっぽいですね!(たぶん)

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。