見出し画像

Windows × WSL×VSCodeでPython開発環境構築

こんにちは、MOFUです。
個人PCはMacなのですが、業務PCはWindowsのことが多いです。
現場が変わるたびに調べて設定していたのでここにまとめておくことにします。

WSLのインストール

WSL (Windows Subsystem for Linux)はWindows上で直接Linuxのコマンドやツールを使えるようにする仮想化技術です。
特徴は

  • LinuxベースのWeb開発やプログラミングをWindows上で行える

  • Linuxのコマンドやシェルスクリプトを実行できる

  • LinuxベースのDBをWindowsで扱える

  • 従来の仮想マシンと比べて軽量

  • WindowsとLinuxのファイルシステムを簡単に共有できる

Windows Power Shellを管理者権限で開く

Windows Power Shellアプリのアイコンを右クリックして、「管理者権限で実行」を選択します。パスワードの入力を求められます。

インストールコマンドの実行

wsl --install

を実行するとUbuntuのインストールが始まります。
特定のディストリビューションをインストールしたい場合は、

# 利用可能なディストリビューションを確認 
wsl --list --online 

# 特定のディストリビューションをインストール 
wsl --install -d <ディストリビューション名>

インストールに失敗する場合は、

  • Windowsのバージョンが最新か(Windows Updateを確認)

  • BIOSで仮想化が有効になっているか

  • Windows機能の「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」が有効になっているか

を確認してください。
再起動を求められます。

インストールの完了とユーザー登録

再起動後、自動的にUbuntuのインストールが始まります。
完了したら、「Ubuntu」アプリを開きます。
初回はユーザー名とパスワードの設定を求められるので入力します。

次回からは、WSLインストール時に設定したユーザーでログインします。
もしrootでログインしている場合は、以下の方法で指定したユーザーに切り替えます。

# 既存ユーザーに切り替える 
su ユーザー名 

# 新しいユーザーを作成する場合 
adduser 新しいユーザー名

デフォルトユーザーを変更したい場合は、

ubuntu config --default-user ユーザー名

rootユーザーで操作しない理由

誤操作のリスク

rootはシステム全体に対して完全な権限を持つため、誤って重要なシステムファイルを削除・変更してしまうリスクがあります。
通常ユーザーであれば、システムファイルの変更には明示的に権限昇格(sudo)が必要なため、誤操作を防げます

セキュリティリスク

マルウェアなどの悪意のあるプログラムがroot権限で実行されると、システム全体が危険にさらされます。
通常ユーザーで実行すれば、被害を最小限に抑えられます。

ベストプラクティス

必要な時だけsudoで一時的に権限を昇格する方が、操作の記録が残り、安全です。

日常的な操作は通常ユーザーで行い、システム設定変更など必要な時だけsudoを使用するのがLinux/UNIXの標準的な運用方法です。

うまくいかないときには

「wsl --install」でうまくいかないときは下記のリンクを参考にして手動で設定を進めます。

Windows 11で「wsl --install」がうまく動作しないのは、典型的には以下のような状況が考えられます:

  1. 以前にWSLの一部機能がインストールされていた、または不完全なインストールが残っている状態

  2. Windowsの特定の機能がシステムポリシーや設定で無効化されている

  3. Windows Update経由でWSLの機能が正しく更新されていない

この場合、手動でのインストール手順が必要になるのは、システムを「クリーンな状態」から順番に構築していくためです。

Linux 用 Windows サブシステムを有効にする

WSLをインストールする前に、Windowsに必要な機能を追加する必要があります。

PowerShellを管理者として開き、下記コマンドを実行します。
このコマンドは、現在稼働中のWindows(/online)に対して、Linux用Windows サブシステムという機能(featurename)を有効化する指示を出しています。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

仮想マシンの機能を有効にする

下記コマンドを実行します。これは仮想マシンのプラットフォームを有効にするコマンドで、WSL2がLinuxを動かすために必要な機能です。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

この2つのコマンドを実行したら、いったんパソコンを再起動します。

Linux カーネル更新プログラム パッケージをダウンロードする

再起動後、WSL2のLinuxカーネルという核となる部分をアップデートする必要があります。MicrosoftのWebサイトからWSL2 Linuxカーネルアップデートパッケージをダウンロードしてインストールします。

x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ

WSL 2 を既定のバージョンとして設定する
下記コマンドを実行して、WSLのバージョン2を既定として設定します。これで、新しくインストールするLinuxは自動的にWSL2として動作するようになります。

wsl --set-default-version 2

選択した Linux ディストリビューションをインストールする
Microsoft Store からUbuntuなどの好きなLinuxディストリビューションをインストールします。初回起動時には、ユーザー名とパスワードの設定を求められますが、これは今後Linuxを使用する際のログイン情報となります。

VSCodeのインストール

VSCode(Visual Studio Code)は、Microsoftが開発した無料のコードエディタです。

様々なプログラミング言語に対応しています。
シンタックスハイライト(コードの色分け表示)やコード補完機能があり、プログラミングがしやすいです。

また、必要な機能を拡張機能(プラグイン)で追加可能です。

コードの管理ツールであるGitもVSCode上でcommitやpushなどの操作が可能です。

現在、最も人気のある開発環境の1つで、プログラミング初心者から上級者まで幅広く使用されています。Windows、Mac、Linuxで利用可能です。

上記サイトからインストールします。

VSCode上でWSLを開く

最も簡単な方法

VSCodeで左下の緑色のアイコンをクリックし、「WSL」または「WSL:Ubuntu」を選択する。

コマンドパレットを使う方法

  1. Ctrl + Shift + P でコマンドパレットを開く

  2. 「WSL」と入力

  3. 「WSL: New WSL Window」を選択

WSLのディレクトリを直接開く場合

VSCodeに「WSL」拡張機能をインストールし、WSL上でコマンドを実行します。

  1. VSCodeの拡張機能タブを開く(左側のアイコン)

  2. 「WSL」で検索

  3. Microsoftの「WSL」拡張機能をインストール

  4. WSL上で下記コマンドを実行

# WSL側で実行

cd 作業ディレクトリ
code .

Pythonのインストール

以降のコマンド操作はWSL上でもいいですし、VSCodeの「ターミナル」上でもOKです。

まず、システムを最新の状態に更新します。

# システムを最新状態に更新

sudo apt update 
sudo apt upgrade

つぎに、pythonをインストールします。
下記コマンドを実行すると、Python本体とpip(パッケージ管理)、venv(仮想環境)、dev(開発ツール)が一度にインストールされます。

sudo apt install python3 python3-pip python3-venv python3-dev

インストールされているpythonのバージョンを確認するには、

python3 --version 

仮想環境の作成

仮想環境を作成

下記コマンドを実行して仮想環境を作成します。

# プロジェクトのディレクトリに移動 
cd プロジェクトディレクトリ 

# 仮想環境を作成(pythonenvは仮想環境の名前) 
python3 -m venv pythonenv

プロジェクトのディレクトリに「pythonenv」というディレクトリができているはずです。ここにインストールしたライブラリの情報などが格納されます。

仮想環境の有効化

# 仮想環境を有効化 
source pythonenv/bin/activate 

有効化されると、プロンプトの先頭に (pythonenv) が表示されます。

ライブラリのインストール

# 個別のライブラリをインストール 
pip install ライブラリ名 

個別に一つ一つインストールしてもいいですが、requirements.txtというテキストファイルにインストールしたいライブラリ名を記載して、まとめてインストールもできます。

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

現在インストールされているパッケージ一覧を確認

pip list

パッケージ一覧をrequirements.txtに出力

pip freeze > requirements.txt

いいなと思ったら応援しよう!