【令和最新版】Windows PC 環境構築手順書(PowerShell)
はじめに
- 対象: Windows 11(ユーザー権限でOK)
- シェル: PowerShell(推奨: PowerShell 7)
- 目的: make, Node.js(+pnpm), Python(+poetry), Git, その他便利ツールの導入
0. 事前ルール
-
管理者権限は不要です。Scoop は CurrentUser にインストールします。
-
最も利用する機会の多いNode.jsとPythonのバージョン管理ツールを導入します(他の言語は今回は対象外)
-
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)'
再起動すると反映される:
一目でブランチやステータスがわかるので便利です。
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.yml /conda-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