科学技術計算のためのPC環境構築(Windows)
2025/11/11
前提条件
この記事では科学技術計算を前提として、Windows PCのWSL環境を構築するための手順を解説します。Linux環境に慣れていなくても、順番に進めていけば環境を整えることができます。
環境
Windows 11 Pro 24H2
目次
- WSLのインストール
- GUIを使う(WSLg)
- Git
- GithubとSSH接続
- pipenv, pyenv
- Node.js
- Visual Studio Code
- Windows側のフォントを使用する
- zsh関係
- Windows Terminal
- WSLのシャットダウン
- 外付けSSDをWSLで使用する場合
- Live Serverでwslからwindows側のchromeを使用する時
WSLのインストール
WSL(Windows Subsystem for Linux)とは:Windows上でLinux環境を動かすことができる仕組みです。科学技術計算では、LinuxベースのツールやPythonライブラリを使うことが多いため、WSLを導入することで開発環境を整えやすくなります。
PowerShellを管理者権限で開き、以下のコマンドを実行します。
wsl --install
PCを再起動する.
以下のコマンドで利用可能なディストリビューションが表示される.
wsl --list --online
こだわりがなければUbuntuのLTS版で最新のものを選べば良い.ここではUbuntu 24.04 LTSを使う.
wsl --install Ubuntu-24.04
Enter new UNIX username: ユーザー名を決めて入力する. New password: パスワードを決めて入力する. Retype new password: パスワードを決めて入力する.
PowerShellを起動し,以下のコマンドを打てばインストールしたディストリビューションとWSLのバージョンを確認できる. ディストリビューション名が指定したものになっており,バージョンが2になっていればOK.
wsl -l -v
以後はスタートメニューにディストリビューションが追加されているのでここから開ける.Windowsターミナルを使っている場合はタブの右にある「+」からも起動できる.

インストール済みのパッケージを更新する.
sudo apt update
sudo apt upgrade
以下は必要に応じてインストールする.
vim:テキストエディタ。ターミナル上でファイルを編集する際に使用します。
sudo apt install vim
C/C++コンパイラ:C/C++プログラムをコンパイルするためのツールです。
sudo apt install make gcc g++
Fortran90/95コンパイラ:Fortranプログラムをコンパイルするためのツールです。数値計算で使用することがあります。
sudo apt install gfortran gdb
GUIを使う(WSLg)
WSLg(WSL GUI)とは:WSL上でGUIアプリケーションを動かすための機能です。グラフ表示や画像処理など、視覚的な操作が必要な科学技術計算で便利です。1
以前はWindows側にXサーバをインストールする必要がありましたが,最新のWSLを使えばWindows10でもWSLgが動くので簡単にGUIが使えます.
WSLgが有効になっているか確認します。
wsl --version
# ここでWSLgのバージョンが表示されればOK
GUIアプリ「xeyes」で動作確認します。
sudo apt install x11-apps
xeyes
目玉がグルグル動けばOK.

Git
Gitとは:バージョン管理システムです。プログラムの変更履歴を記録し、複数人での共同作業やコードの管理を効率的に行えます。
Gitをインストールします。
sudo apt install git
ユーザー名とメールアドレスを設定します。
git config --global user.name "XXXXXX"
git config --global user.email XXXXX@XXXXXX
# 設定内容を確認する.設定した内容が表示されればOK.
git config user.name
git config user.email
GithubとSSH接続
GitHubとは:Gitリポジトリをオンラインで管理できるプラットフォームです。コードの共有やバックアップ、共同開発に利用します。
SSH接続とは:安全にGitHubと通信するための方法です。パスワードを毎回入力せずにGitHubを利用できます。
Githubのアカウントがない場合は作成します。2
.sshディレクトリに移動します。なければ作ってから移動します。
# .sshに移動する..sshがまだ存在しなければエラーが出る.
cd ~/.ssh
# .sshがなかった場合,以下であらたに作成してから移動する.
mkdir ~/.ssh
cd ~/.ssh
RSA方式で暗号鍵を作成します。名前とパスワード(パスフレーズ)を聞かれます。名前は「github」とします。
パスフレーズについて:パスフレーズを設定すると、秘密鍵が盗まれても悪用されにくくなります。ただし、Gitを使うたびにパスフレーズの入力が必要になります。セキュリティを重視する場合はパスフレーズを設定することをお勧めしますが、利便性を優先する場合は空白(何も入力しない)でも構いません。自分の利用環境に応じて選択してください。
ssh-keygen -t rsa
## 以下のように入力
Enter file in which to save the key (/home/ussy/.ssh/id_rsa): github
Enter passphrase (empty for no passphrase): <パスフレーズを入力、または何も入力せずEnter>
Enter same passphrase again: <同じパスフレーズを入力、または何も入力せずEnter>
github(秘密鍵)とgithub.pub(公開鍵)が作成されます。 Githubの設定ページ3に公開鍵の中身をコピペします。名前は秘密鍵を入れている端末名とすると分かりやすいです。
.sshの中にconfigというファイルを作り,下記の内容を記述します。
Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/github
下記のコマンドを打って成功のメッセージが帰ってくればOK.
ssh -T github
configファイルがない場合は以下とします。
ssh -T git@github.com
GithubのリポジトリをクローンするときはGithubのCodeからSSHを選んで表示されるURLを使用します。

pushできないときは作業ディレクトリで下記のコマンドを打ち,作業ディレクトリをSSHキーと紐付けます。
ssh-add ~/.ssh/github
pipenv, pyenv
pyenvとは:複数のPythonバージョンを管理するツールです。プロジェクトごとに異なるPythonバージョンを使い分けることができます。
pipenvとは:Pythonのパッケージと仮想環境を管理するツールです。プロジェクトごとに独立した環境を作ることで、パッケージのバージョン競合を避けられます。
bashとzshの違い:どちらもLinuxのシェル(コマンドを実行する環境)です。bashはデフォルトで使われることが多く、zshはカスタマイズ性が高く便利な機能が多いです。後述のzsh関係のセクションでzshの設定を行いますが、それまではbashを使用します。zshに切り替えた後は、zsh用のコマンドを使用してください。
pyenvのインストール
pyenvをインストールします。4
curl https://pyenv.run | bash
bashを使用している場合(デフォルト):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
zshを使用している場合:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
シェルの再起動
exec "$SHELL"
ビルドの依存関係のインストール
sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
pyenvの使い方
# インストール済みのPythonバージョンを確認
pyenv versions
# インストール可能なPythonバージョンを一覧表示
pyenv install -l | less
# 最新のPython 3をインストール
pyenv install 3
# 現在のディレクトリで使用するPythonバージョンを設定
pyenv local 3.xx.xx
# システム全体で使用するPythonバージョンを設定
pyenv global 3.xx.xx
# 設定を反映
source ~/.bashrc # bashの場合
# または
source ~/.zshrc # zshの場合
# Pythonバージョンを確認
python3 --version
condaのインストール(pyenv経由)
condaとは:Pythonの科学技術計算パッケージを管理するツールです。NumPy、pandas、matplotlibなど、科学技術計算でよく使うパッケージを簡単にインストールできます。
pyenv経由でMinicondaをインストールします。
# インストール可能なcondaのバージョンを確認
pyenv install -l | grep miniconda
# 最新のMinicondaをインストール(例:miniconda3-latest)
pyenv install miniconda3-latest
# condaを使用するように設定
pyenv global miniconda3-latest
# conda初期化(bashの場合)
conda init bash
# conda初期化(zshの場合)
conda init zsh
# シェル再起動
exec "$SHELL"
condaによるパッケージインストールでエラーが出た場合の対処法:
conda install --solver=classic -c conda-forge matplotlib
pipenvのインストールと使い方5
pipenvをインストールします。
pip install pipenv
プロジェクト配下にPython仮想環境を作成するように環境変数を設定します。
bashを使用している場合(デフォルト):
echo 'export PIPENV_VENV_IN_PROJECT=1' >> ~/.bashrc
source ~/.bashrc
zshを使用している場合:
echo 'export PIPENV_VENV_IN_PROJECT=1' >> ~/.zshrc
source ~/.zshrc
こうすることで仮想環境がプロジェクトフォルダ内の.venvに作られます。
この状態でVS Codeを起動し,カーネル選択時に.venv/bin/pythonを選べば良いです。
pipenvの基本的な使い方:
# プロジェクトディレクトリで仮想環境を作成
pipenv install
# パッケージをインストール
pipenv install numpy pandas matplotlib
# 仮想環境に入る
pipenv shell
# 仮想環境から出る
exit
Node.js
Node.jsとは:JavaScriptをサーバーサイドやコマンドラインで実行できる環境です。Web開発やツール開発で広く使われています。
nvmとは:Node Version Managerの略で、複数のNode.jsバージョンを管理するツールです。プロジェクトごとに異なるNode.jsバージョンを使い分けることができます。
作業ディレクトリの準備
Node.jsプロジェクトを作成する前に、作業ディレクトリを準備します。
推奨: Linuxホームディレクトリ内に作成
# 現在のディレクトリを確認(/home/ユーザー名 になっているはず)
pwd
# プロジェクト用のディレクトリを作成
mkdir -p ~/projects
# 作成したディレクトリに移動
cd ~/projects
ディレクトリ構成の例
/home/ussy/
├── projects/ # ここにプロジェクトを作成
│ ├── project1/
│ ├── project2/
│ └── ...
注意点: Windowsのドライブ(
/mnt/c/など)ではなく、Linux側(~/)に作業ディレクトリを作ることを強く推奨します。パフォーマンスとファイルパーミッションの問題を避けられます。
nvmのインストール
インストールスクリプトの実行
# nvmインストールスクリプトの実行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
シェル設定の再読み込み
bashを使用している場合:
source ~/.bashrc
zshを使用している場合:
source ~/.zshrc
インストール確認
# nvmが正しくインストールされたか確認
nvm --version
トラブルシューティング: nvm: command not found と表示される場合
bashの場合:
# .bashrcを編集
nano ~/.bashrc
# 以下の行が末尾にあることを確認(なければ追加)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# Ctrl+O で保存、Ctrl+X で終了
# その後、再度読み込み
source ~/.bashrc
zshの場合:
# .zshrcを編集
nano ~/.zshrc
# 以下の行が末尾にあることを確認(なければ追加)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# Ctrl+O で保存、Ctrl+X で終了
# その後、再度読み込み
source ~/.zshrc
Node.jsのインストール
# 最新のLTS版をインストール(推奨)
nvm install --lts
# または特定のバージョンを指定
# nvm install 20
# nvm install 18
# インストールされたバージョンを確認
nvm list
# Node.jsとnpmのバージョン確認
node --version
npm --version
期待される出力例
$ node --version
v20.10.0
$ npm --version
10.2.3
よく使うnvmコマンド
# インストール済みのNode.jsバージョン一覧
nvm list
# 利用可能なNode.jsバージョンを確認(リモート)
nvm list-remote
# 特定のバージョンをインストール
nvm install 18.19.0
# 特定のバージョンに切り替え
nvm use 20
# デフォルトバージョンを設定(新しいシェルで自動的に使用される)
nvm alias default 20
# 現在使用中のバージョンを確認
node --version
# 特定バージョンのアンインストール
nvm uninstall 18.19.0
プロジェクトで異なるNode.jsバージョンを使いたい場合
プロジェクトディレクトリに .nvmrc ファイルを作成します。
# .nvmrcファイルを作成
echo "18" > .nvmrc
# そのディレクトリで以下を実行すると、.nvmrcで指定されたバージョンが使用される
nvm use
グローバルパッケージの管理
nvmを使用している場合、各Node.jsバージョンごとに独立したグローバルパッケージがインストールされます。
# グローバルパッケージのインストール場所を確認
npm root -g
# グローバルにインストールされているパッケージの一覧
npm list -g --depth=0
チェックリスト
Node.js環境が正しく構築できているか確認してください。
-
nvm --versionでバージョンが表示される -
node --versionでバージョンが表示される -
npm --versionでバージョンが表示される -
~/projectsディレクトリが作成されている
Visual Studio Code
Visual Studio Code(VS Code)とは:Microsoftが開発した無料のコードエディタです。WSLとの連携が優れており、プログラミングに便利な機能が多数搭載されています。
セットアップ手順
-
Windows側での設定
- Windows側でVS Codeを開き、拡張機能「WSL」をインストールします。
-
WSL側での設定
- WSL側で以下のコマンドを実行してVS Codeを開きます。
code .- 拡張機能「Python」「Jupyter」をインストールします。
Jupyterを使う場合
Jupyterとは:Pythonのコードをブラウザやエディタ上で対話的に実行できるツールです。データ分析や可視化に便利です。
pipenvでjupyterをインストールします。
pipenv install jupyter
ipynbファイルをVS Codeで開き、右上のカーネル選択でpipenvで作成した仮想環境を選択します。
Windows側のフォントを使用する
なぜ必要か:matplotlibなどでグラフを作成する際、日本語フォントが必要になります。Windows側のフォントをWSLから利用できるように設定します。6
使用可能なフォントの確認
sudo apt install -y fonts-ipafont
fc-list
/etc/fonts/に移動してlocal.confを作成して下のXMLを書きます。sudo vi local.confと管理者権限で編集します。読み込まれないものがあるときはwindowsの設定>個人用設定>フォントでフォントの場所を確認し、/mnt/c/Windows/Fonts以外にあれば
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>
上記の作業後にmatplotlibでフォントを読み込めない場合はキャッシュが残っている可能性があります。
その場合~/.cache/matplotlib/のfontlist-v~.jsonを削除します。
Ubuntu再インストールが上手くいかなかったとき
再インストール後に起動しなくなったWSLのUbuntuを修復する方法です。7
zsh関係
zshとは:bashの拡張版のシェルで、補完機能やテーマのカスタマイズなど便利な機能が多く搭載されています。見た目をカスタマイズして使いやすくすることができます。
bashからzshに切り替えてoh my zshとPowerlevel10kを入れます。89
zshをインストールして常にzshが起動するように設定します。
sudo apt install zsh
デフォルトのシェルをzshに変更します。
chsh -s /usr/bin/zsh
prezto
preztoとは:zshの基本的な設定を自動で行ってくれるフレームワークです。10
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
zshの設定ファイルをコピーし、新しいzshの設定を作成します。
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
oh my zsh
oh my zshとは:zshをより使いやすくするための設定管理フレームワークです。多くのプラグインとテーマが用意されています。
oh my zshをGitHubからクローンして実行します。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Powerlevel10k
Powerlevel10kとは:zshのテーマの一つで、ターミナルの見た目を美しくカスタマイズできます。Gitの状態やコマンド実行時間などの情報を表示できます。11121314
Powerlevel10k から推奨フォント(MesloLGS NF ~ .ttf)をダウンロードしてインストールしておきます。Windows側に入れてWindows Terminalの設定で適用すれば良いです。
以下の4種ファイルからフォントをインストールします。


Powerlevel10kをインストールします。
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
.zshrcを編集します。
# ZSH_THEME="robbyrussell"から以下に書き換え
ZSH_THEME="powerlevel10k/powerlevel10k"
以下で.zshrcの変更が反映され、Powerlevel10kの設定が開きます。
source ~/.zshrc
Powerlevel10kの設定を再度変更したい場合には以下のコマンドを使います。
p10k configure
Windows Terminal
Windows Terminalとは:Microsoftが開発した新しいターミナルアプリです。複数のタブ、カスタマイズ可能な配色、フォント設定などが可能です。
Settings.jsonを編集します。 "list"内の適用したいシェル(例えば"Ubuntu 20.04.5 LTS")に以下を追加します。
"colorScheme": "Solarized Dark - Patched"
"schemes"内に"name": "Solarized Dark - Patched"とした下の内容を追加します。Solarized Darkを見やすく調整したものです。15
{
"name": "Solarized Dark - Patched",
"background": "#001E27",
"black": "#002831",
"blue": "#A0BEDA",
"brightBlack": "#AED0DE",
"brightBlue": "#708284",
"brightCyan": "#819090",
"brightGreen": "#80a0ac",
"brightPurple": "#5956BA",
"brightRed": "#BD3613",
"brightWhite": "#FCF4DC",
"brightYellow": "#536870",
"cursorColor": "#FFFFFF",
"cyan": "#259286",
"foreground": "#708284",
"green": "#22450E",
"purple": "#C61C6F",
"red": "#D11C24",
"selectionBackground": "#FFFFFF",
"white": "#EAE3CB",
"yellow": "#A57706"
}
設定はこんな感じです。

WSLのシャットダウン
WSLをシャットダウンする場合はWindows側のターミナルで以下を実行します。
wsl --shutdown
外付けSSDをWSLで使用する場合
外付けSSDをWSL上でマウントして使用する方法です。16
Windows側からSSDを確認します。
wmic.exe diskdrive get deviceID,Caption
Windows側で外付けSSDをアタッチします。
wsl --mount \\.\PHYSICALDRIVE1 --bare
WSL側でパーティション番号を調べます(例:sdd3であれば3)。
lsblk
Windows側で外付けSSDをマウントします。
wsl --mount \\.\PHYSICALDRIVE1 --partition 3
マウントの解除。
wsl --unmount \\.\PHYSICALDRIVE3
Live ServerでWSLからWindows側のChromeを使用する場合
Live Serverとは:VS Codeの拡張機能で、HTMLファイルをリアルタイムプレビューできます。
live serverのsetting.jsonに以下を加えます。
"liveServer.settings.useLocalIp": true,
"liveServer.settings.AdvanceCustomBrowserCmdLine": "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
参考文献
Footnotes
-
https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a, https://qiita.com/youkidkk/items/c4fd58a32bf04d9ca6d6, https://qiita.com/tonluqclml/items/cd0d2a2cb0197cbaee42 ↩
-
https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/ ↩
-
https://slacknotebook.com/zsh-powerlevel10k-installation-linux/ ↩
-
https://qiita.com/kazuki_yoshida/items/a66a52ef813e168195bb ↩