💻

【令和最新版】Windows PC 環境構築手順書(PowerShell)

に公開

はじめに

  • 対象: Windows 11(ユーザー権限でOK)
  • シェル: PowerShell(推奨: PowerShell 7)
  • 目的: make, Node.js(+pnpm), Python(+poetry), Git, その他便利ツールの導入

0. 事前ルール

  • 管理者権限は不要です。Scoop は CurrentUser にインストールします。

  • 最も利用する機会の多いNode.jsPythonのバージョン管理ツールを導入します(他の言語は今回は対象外)

    • Node 管理は nvm-windows を使います(Corepackで pnpm を有効化)

    • Python は pyenv-win で 3.10 系を入れます

      • Pythonのバージョンは適宜必要なものに読み替えてください
      • Conda を使う場合は pyenv-win と併用しないでください

インストールするソフトウェア一覧

カテゴリ ソフトウェア名 用途 備考
汎用 scoop Windows用パッケージマネージャ scoop.shからインストール可能なソフトウェアを確認できる
汎用 git バージョン管理
汎用 make ビルドツール 任意
汎用 starship 高機能プロンプト 任意、あるとターミナルがリッチになる
Node.js nvm-windows Node.js バージョン管理
Node.js pnpm Node.js パッケージ管理 任意、Corepack 経由でインストール
Node.js corepack Node.js パッケージマネージャ管理 任意、pnpmのインストールに使用
Python pyenv-win Python バージョン管理
Python poetry Python パッケージ管理
Python uv Python 仮想環境管理(pyenv, poetryの代替) 任意

1. Scoop の導入(必須)

PowerShell を「管理者以外」で起動して実行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

1.1 汎用ツールの導入

バケット追加と git, make, starship 導入:

scoop bucket add main

scoop install main/git
scoop install main/make
scoop install main/starship

動作確認:

git --version
make --version
starship --version
(オプション) starship を導入しターミナルをリッチにする

PowerShellの設定ファイルの最後にセットアップコマンドを追加:

Add-Content -Path $PROFILE -Value 'Invoke-Expression (&starship init powershell)'

再起動すると反映される:

alt text

一目でブランチやステータスがわかるので便利です。

2. Node.js & pnpm

2.0 Node.js パッケージマネージャの選択

ざっくり以下が僕の理解です。速度や近年のトレンドを考慮してpnpmをインストールしますが、プロジェクトの方針に合わせて選択してください。

ツール 速度・効率 ロック/再現性 ワークスペース 備考
npm package-lock.json あり 既定で十分。ディスク使用は多め
Yarn Classic (1.x) yarn.lock あり(成熟) 1.x は安定だが今後は保守的
Yarn Berry (2+) yarn.lock 強力 PnP は一部ツール非対応あり(nodeLinker 調整要)
pnpm 高/ディスク効率◎ pnpm-lock.yaml 強力(モノレポ好相性) 非フラット解決で古いツールが壊れることあり(hoist設定で緩和)

2.1 nvm-windows の導入

nvmは 複数のNode.jsバージョンを切り替えられるツールです。代替ツールとしてVoltaがありますが、nvmを使っていて不自由を感じたことがないので、今回はnvmを使います。

scoop install main/nvm

2.2 Node.js v22.13.0 を入れて既定化

nvm install 22.13.0
nvm use 22.13.0
node -v
npm -v

2.3 Corepack で pnpm を有効化(推奨)

scoop版のpnpmは動作が不安定なので、Corepack 経由でインストールします。重複を避けるため、scoop版のpnpmのインストールは不要です。

npm install --global corepack@latest
corepack enable pnpm
pnpm -v

3. Python & poetry

3.0 バージョン・環境管理ツールの選択

ざっくり以下が僕の理解です。目的に応じて選択してください。個人的にはpyenv-win + poetryの組み合わせが軽量で好みです。本稿ではこの組み合わせを導入します。

ツール 役割 仮想環境 長所 注意点 / 衝突リスク
Miniconda(conda) ディストリ+環境管理 conda env 科学計算に強く再現性高い/Windows相性◎ 本体が重め/シェル初期化で PATH 変化/pyenv と併用非推奨
pyenv-win Python本体の切替 venv / Poetry の .venv 軽量・素の Python 構成/複数バージョン併存が簡単 C拡張は自力対応が必要になることあり/conda と併用非推奨
venv(標準) プロジェクト隔離 python -m venv 標準・軽量・学習コスト低い バージョン切替はできない(pyenv などと併用)

3.1 パッケージ管理ツールの選択

本稿ではpoetryを導入します。プロジェクトの方針に合わせて選択してください。

ツール 種別 ロック/再現性 依存解決 注意点
pip パッケージインストーラ requirements.txt(手管理) 速い(素直) 再現性管理は弱め(手当て必要)
Poetry 依存&プロジェクト管理 poetry.lock強い再現性 厳密 conda 併用時は設定注意(virtualenvs.in-project true 推奨)
conda(pm) パッケージ&環境 environment.ymlconda-lock バイナリ解決に強い リゾルバ重め→mamba 併用が吉
uv 依存&プロジェクト管理(pip 互換 CLI 含む) uv.lock(厳密) 超高速(Rust 製)/uv sync でロック→解決→導入 ロックは Poetry/pip-tools と互換なし/一部ツール連携が未整備な箇所あり/新しめで運用知見は少なめ

3.2 pyenv-win の導入

scoop版のpyenv-winは動作が不安定なので、公式のインストールスクリプトを使います。管理者権限は不要です。

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

pyenv --version

3.3 Python 3.10.0 を導入&既定化

pyenv install 3.10.0
pyenv global 3.10.0
pyenv rehash
python -V

3.4 poetry の導入

Scoop か公式インストーラどちらでもOK。ここでは Scoop 版を使います。

scoop install main/poetry
poetry --version

推奨設定:

# プロジェクトローカルに仮想環境を作る(.venv)
poetry config virtualenvs.in-project true

3.5 (オプション) uv の導入

流行りのuvを試してみたい場合:

scoop install main/uv
uv --version

以上。

Discussion