北九州でのプログラミングスクールはなんだかんだと半年くらいが経過して、月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 .
かなりプロっぽいですね!(たぶん)