生成AI研修
Part 2: 開発ツール基礎

Chapter 14: 開発環境の構築

プログラミング言語とパッケージマネージャのセットアップ

Chapter 14: 開発環境の構築

プログラミングを始める前に、開発環境を整える必要があります。開発環境とは「コードを書いて実行するための道具一式」です。この章では Node.js と Python を中心に、現場でよく使われるセットアップ方法を学びます。

14.1 プログラミング言語のインストール

Node.js とは

Node.js は JavaScript をサーバーサイドで実行する環境です。もともとブラウザ上でしか動かなかった JavaScript が、Node.js の登場によってサーバーでも使えるようになりました。

現在、Web開発の多くのツール(Webpack、Vite、ESLint など)がNode.jsで動いています。フロントエンド開発をするなら必須の環境です。

Python とは

Python はシンプルな文法で読みやすい汎用プログラミング言語です。データ分析・機械学習・Webバックエンド・自動化スクリプトなど幅広い用途で使われています。


しかし、ここで問題があります。プロジェクトによって必要なバージョンが異なります。

プロジェクトA: Node.js 16 が必要
プロジェクトB: Node.js 20 が必要
プロジェクトC: Python 3.9 が必要
プロジェクトD: Python 3.12 が必要

1台のPCで複数バージョンを扱うにはバージョン管理ツールが必要です。

14.2 パッケージマネージャ

npm(Node Package Manager)

npm は Node.js に付属するパッケージ管理ツールです。外部ライブラリのインストール・管理を担当します。

# パッケージのインストール
npm install express

# 開発環境のみで使うパッケージ
npm install --save-dev eslint

# グローバルにインストール
npm install -g typescript

# package.json に記載された全パッケージをインストール
npm install

# パッケージのアップデート
npm update

# インストール済みパッケージの一覧
npm list

package.json は Node.js プロジェクトの設定ファイルです:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "サンプルプロジェクト",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "jest",
    "build": "webpack"
  },
  "dependencies": {
    "express": "^4.18.0",
    "axios": "^1.6.0"
  },
  "devDependencies": {
    "jest": "^29.0.0",
    "eslint": "^8.0.0"
  }
}
# package.json に定義したスクリプトを実行
npm run dev
npm run build
npm test

pip(Python のパッケージマネージャ)

# パッケージのインストール
pip install requests

# requirements.txt からまとめてインストール
pip install -r requirements.txt

# インストール済みパッケージを requirements.txt に書き出す
pip freeze > requirements.txt

# パッケージのアップデート
pip install --upgrade requests

# インストール済みパッケージの一覧
pip list

requirements.txt は Python プロジェクトの依存関係ファイルです:

# requirements.txt
requests==2.31.0
flask==3.0.0
sqlalchemy==2.0.0
pytest==7.4.0

14.3 バージョン管理ツール

複数のNode.js・Pythonバージョンを切り替えて使うためのツールです。

mise(推奨:複数言語を統一管理)

mise(ミーズ)は Node.js・Python・Ruby など複数の言語バージョンを1つのツールで管理できるモダンなバージョン管理ツールです。

# macOS へのインストール
brew install mise

# mise のセットアップ(シェルに追記)
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc

# Node.js の最新LTSをインストール
mise install node@lts
mise use --global node@lts

# Python の特定バージョンをインストール
mise install python@3.12
mise use --global python@3.12

# インストール済みのバージョン一覧
mise list

# 現在のバージョンを確認
node --version
python3 --version

プロジェクトごとのバージョン指定

プロジェクトのルートに .mise.toml を置くと、そのプロジェクトだけ別のバージョンを使えます:

# .mise.toml
[tools]
node = "18"
python = "3.11"
# プロジェクトフォルダに移動すると自動で切り替わる
cd my-project
node --version  # v18.x.x(プロジェクト指定のバージョン)

nvm(Node.js 専用)

nvm(Node Version Manager)はNode.js専用のバージョン管理ツールです。

# nvm のインストール(macOS / Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 設定を反映
source ~/.zshrc

# 利用可能なバージョンを表示
nvm ls-remote

# Node.js をインストール
nvm install 20        # バージョン20系の最新
nvm install --lts     # 最新LTS版

# バージョンを切り替え
nvm use 20
nvm use 18

# デフォルトバージョンを設定
nvm alias default 20

# インストール済みバージョンの一覧
nvm ls

pyenv(Python 専用)

# macOS へのインストール
brew install pyenv

# シェルに設定を追加
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

# インストール可能なバージョン一覧
pyenv install --list

# Python をインストール
pyenv install 3.12.0
pyenv install 3.11.7

# グローバルで使うバージョンを設定
pyenv global 3.12.0

# プロジェクトごとのバージョンを設定(.python-version ファイルが作られる)
pyenv local 3.11.7

どれを選ぶか

ツール対応言語おすすめ場面
miseNode.js・Python・Ruby など多数複数言語を使う場合(最初の1択)
nvmNode.jsのみNode.js 専業の場合
pyenvPythonのみPython 専業の場合

最初は mise を選ぶことをおすすめします。 1つのツールで複数言語を管理でき、設定ファイル(.mise.toml)でバージョンを明示できます。

14.4 Hello World を動かす

Node.js の Hello World

# Node.js のバージョン確認
node --version
# v20.11.0

# ターミナルで直接実行
node -e "console.log('Hello, World!')"
# Hello, World!

# ファイルに書いて実行
echo "console.log('Hello, Node.js!');" > hello.js
node hello.js
# Hello, Node.js!

Express で簡単な Web サーバー

# プロジェクトを初期化
mkdir hello-node
cd hello-node
npm init -y

# Express をインストール
npm install express
// index.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(3000, () => {
  console.log('http://localhost:3000 で起動中');
});
# サーバーを起動
node index.js

# ブラウザで http://localhost:3000 にアクセス

Python の Hello World

# Python のバージョン確認
python3 --version
# Python 3.12.0

# ターミナルで直接実行
python3 -c "print('Hello, World!')"
# Hello, World!

# ファイルに書いて実行
echo "print('Hello, Python!')" > hello.py
python3 hello.py
# Hello, Python!

Flask で簡単な Web サーバー

# 仮想環境を作成(後述)
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Flask をインストール
pip install flask
# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True, port=5000)
# サーバーを起動
python3 app.py

# ブラウザで http://localhost:5000 にアクセス

14.5 プロジェクトの構成パターン

Node.js プロジェクトの標準構成

my-node-project/
├── src/              # ソースコード
│   ├── index.js      # エントリーポイント
│   ├── routes/       # ルーティング
│   └── models/       # データモデル
├── tests/            # テストコード
├── public/           # 静的ファイル
├── .env              # 環境変数(Git 管理外)
├── .env.example      # 環境変数のサンプル(Git 管理)
├── .gitignore
├── package.json
└── README.md

Python プロジェクトの標準構成

my-python-project/
├── src/
│   └── myapp/        # パッケージ
│       ├── __init__.py
│       └── main.py
├── tests/            # テストコード
├── venv/             # 仮想環境(Git 管理外)
├── .env              # 環境変数(Git 管理外)
├── .gitignore
├── requirements.txt  # 依存関係
└── README.md

Python 仮想環境(venv)

Python では仮想環境を使ってプロジェクトごとに依存関係を分離します。

# 仮想環境を作成
python3 -m venv venv

# 仮想環境を有効化
source venv/bin/activate   # macOS / Linux
# venv\Scripts\activate    # Windows

# プロンプトが変わる
# (venv) $ ← これが表示されたら有効化されている

# パッケージをインストール(venv 内に入る)
pip install flask requests

# 依存関係を書き出す
pip freeze > requirements.txt

# 仮想環境を無効化
deactivate

.env ファイルの管理

本番環境のパスワードや API キーは .env ファイルで管理し、絶対に Git にコミットしないようにします。

# .env ファイルの例
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
SECRET_KEY=my-super-secret-key
API_KEY=sk-1234567890
NODE_ENV=development
# .gitignore に必ず追加
echo ".env" >> .gitignore

.env.example というサンプルファイルを Git に含め、実際の値は個別に設定する運用が一般的です:

# .env.example(Git に含める)
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
SECRET_KEY=your-secret-key-here
API_KEY=your-api-key-here
NODE_ENV=development

まとめ

言語バージョン管理パッケージ管理仮想環境
Node.jsmise / nvmnpmnode_modules(自動)
Pythonmise / pyenvpipvenv(手動作成)

開発環境のセットアップは最初は戸惑いますが、一度手順を覚えればどのプロジェクトでも応用できます。困ったときは --version でバージョン確認、エラーメッセージを Google 検索することがコツです。

Part 2 完了: 次は Part 3 でクラウドサービスや CI/CD などより実践的なトピックを学びます。

On this page