0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

建築学徒が数理的な研究をするためのプログラミング環境構築手引き

0
Posted at

はじめに

建築学を専門にしていて、ひょんなことからプログラミングを使った数理的アプローチで研究することになったひとに向けて、プログラミング環境構築の個人的ベストプラクティスをシェアする記事です。ちょっとアドバンストな内容で、「本腰入れてプログラミングするぞ」というひと向けになっています。

本記事で紹介する環境によって、ある程度プログラミングに慣れてきたタイミングで訪れる困難に対応できるようになります。その困難とは、例えば、自分の必要に応じてカスタマイズした環境を、買い替えたデバイスに再現する作業です。これは生の環境でやろうとするとなかなか骨が折れるのですが、今回紹介する環境構築の方法は、その課題の解決をいくらか楽にしてくれるものになっています。

この記事が役に立つ人

Windows 11 ユーザーを想定しています。
手順に差はあると思いますが、Mac や Ubuntu ユーザーの参考にもなるかと思います。

「建築学を専門にしている研究者が我流で身に付けた方法でもいいので参考にしたい」というひとに向けています。

紹介する環境

  • WSL2
    専門性の高いライブラリを簡単に導入するための環境
  • Docker
    環境の再現を簡単にするツール
  • VS Code
    WSL2 と Docker を併用できるエディター

WSL2

専門性の高いライブラリは Linux 系の環境で提供されることが多く、Windows で使おうと思うと導入が面倒くさい場合があります。Linux 系の OS をインストールしたマシンを用意するのも手ですが、Windows マシンの中で仮想的に利用することもできます。それが Windows Subsystem for Linux 2 (WSL2) です。

インストール

Windows PowerShell を管理者として実行(右クリックするとオプションに表示されます)し、以下のコマンドを実行するだけです。

PowerShell
wsl --install

正しくインストールできていると、以下のコマンドで Ubuntu を起動できます。

PowerShell
 wsl

または、

PowerShell
 ubuntu

起動時のカレントディレクトリが異なりますのでご注意ください。

アプリに Ubuntu が追加されているので、そちらからも起動できます。

App_Ubuntu

導入手順は、公式サイトが詳しいです。

Docker

Docker は、「イメージ」という環境の仕様のようなものをもとに作られた「コンテナ」という仮想的なシステムを作るためのツールです。同じイメージをもとにしたコンテナのなかの環境は、デバイスが異なっていても同じになります。他の人に自分のプログラムを渡したときにも、イメージを渡せば同じ環境を再現してもらえるので、スムーズに使ってもらえます。

インストール

Windows で利用するときは、Docker Desktop をインストールするのが楽です(インストーラのダウンロードサイト)。

インストールした Docker Desktop を起動し、設定画面を開きます(右上の歯車のマークをクリック)。そして、左の Resources > WSL integration タブで、Enable integration with my default WSL distroにチェックし、Ubuntuを有効にします。

Docker Desktop

Docker Desktop が正しくインストールできていると、以下のコマンドでバージョン情報が出力されます。

Ubuntu
docker -v

VS Code

ポピュラーなエディターなので、導入手順は本記事では割愛します。必要な拡張機能を以下に挙げます。

拡張機能

拡張機能タブ(左の"田"のようなマーク)をクリックして、以下の拡張機能を検索してインストールします。

  • WSL
  • Dev Containers
  • Docker

開発

プロジェクトごとに必要な環境は異なるはずです。ときには、それらが競合してしまうことがあります。ですので、本記事では、プロジェクトごとに異なる環境を立ち上げ、その環境のなかで開発することをおすすめします。

以下、チュートリアル的に説明しますので、ご自身のマシンでなぞってみてください。

設定

以下のようなディレクトリ構造のプロジェクトを想定します。

your/project/root
├── data
│   └── greeting.txt
├── docker
│   ├── Dockerfile
│   └── requirements.txt
└── src
    └── main.py

VS Code を Ubuntu 環境で起動

VS Code を起動しctrl + shift + pを押下してWSL: Connect to WSLを選択します。

VS Code_Connect to WSL

そうすると、Ubuntu の環境で VS Code が起動します(下図の左下がWSL: Ubuntuになっていることに注目)。

ターミナルは、PowerShell で起動した Ubuntu でも、アプリから起動した Ubuntu でもいいのですが、下図のように、VS Code のなかでもターミナルを起動することができます。

VS Code_Terminal

Docker イメージの構築

イメージは環境の仕様のようなものだと説明しましたが、仕様書はDockerfileと呼ばれるファイルになります。
以下に簡単なPython環境を立ち上げるためのDockerfileの例を示します。

Dockerfile
# Python本体が入った公式イメージを使う
FROM python:3.12-slim

# コンテナ内の作業場所
WORKDIR /workspace

# ライブラリをインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 実行コマンド
CMD ["/bin/bash"]

Pythonの場合、必要なライブラリはバージョン情報付きでrequirements.txtにまとめておくことができます。例えば、

requirements.txt
ipython==8.12.0
jupyter==1.0.0
notebook==6.5.4
ipykernel==6.22.0
environment-kernels==1.2.0
numpy<2
scipy==1.16.3
shapely==2.1.2
matplotlib==3.10.7

これらふたつが準備できたら、ターミナルで以下のコマンドを実行して Docker イメージを構築します。

Ubuntu
cd your/project/root/docker
docker build -t <docker image name>:latest .

<docker image name>は、Docker イメージの名前を入力してください。:latestはタグと呼ばれるもので、イメージの管理に使えるものです。特にこだわりがなければ、ひとまず:latestを付けておいてください。

作られた Docker イメージは以下のコマンドで確認できます。

Ubuntu
docker images

Docker コンテナの立ち上げ

Docker イメージが構築できたら、それをもとに Docker コンテナを作ります。
特に難しいことはなく、以下のようなコマンドを実行するだけです。

Ubuntu
docker run \
    -itd \
    -v /your/project/root:/workspace \
    --detach-keys "ctrl-x" \
    --name <docker container name> \
    <docker image name>:latest

行の上から順に

  • Docker イメージからコンテナを作成して起動
  • 標準入力を有効にし(i)、ターミナルを割り当て(t)、バックグラウンドでコンテナを実行(d)
  • PCのディレクトリ(/your/project/root)を、コンテナ内のディレクトリ(/workspace)に同期
  • Ctrl+xでコンテナから抜けられるようにする
  • コンテナ名の指定
  • 起動に使用するイメージの指定

を意味しています。

特に、-vオプションを設定しておくと、PC 側とコンテナ側でファイルの変更が自動的に反映されて便利です。

Docker コンテナに入る

先のセクションで立ち上げたコンテナに、ターミナル経由で入る方法もあるのですが、ここでは、開発のしやすさを優先して VS Code 上で入る方法を説明します。

Remote Explorerタブをクリックし、プルダウンをDev Containersに変更すると、立ち上げたコンテナ(下図ではtutorial)が表示されています。その横にあるAttach in New Windowをクリックすると、コンテナ環境で VS Code が起動します。

VS Code_Attach Window

下図はコンテナ環境で起動した VS Code のウィンドウです。左下がContainer tutorial:latest (tutorial)になっていて、左に見える Explorer タブの中身も設定と同じものになっています。このウィンドウを使えば、安心してがしがし開発できます。

VS Code in Container

おわりに

このような形で開発環境を整えておくと、

  • 別の PC に環境を再現しやすい
  • プロジェクトごとに環境を分離できる
  • ライブラリ同士の競合を避けやすい
  • 他の人に研究コードを共有しやすい
  • 数年後に過去の研究を再実行しやすい

といった恩恵を受けられるようになります。

特に研究では、「昔動いていたコードが動かない」という問題にかなり悩まされます。Docker のような仕組みを使って環境ごと保存しておくと、そのようなトラブルを減らしやすくなります。

建築学徒には少し重たい構成かも知れませんが、円滑な研究のためと思ってチャレンジしてみてほしいです。

ホームページのご案内

建築・都市計画数理に関する私の研究の内容や、研究にまつわるtips等は、個人ホームページにて公開しています。ゆくゆくは、気軽に使える分析ツールも作っていきたいと思っているので、ぜひ覗きに来てください。
→田端祥太の個人ホームページ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?