WSL2で構築するWindows 11で動くLinux環境とCursor(カーソル)のセットアップ
Mac使いの私に訳がありまして(気まぐれとも言う)、Windows PCを購入しました。開発環境を構築したいのですが、WindowsのMS-DOSベースのファイル構造が気に入りません。Appleは早々にUnixベースのOSに切り替えていたのですが、マイクロソフト社もユーザー側のこのような空気に気付いていて、WSL2(Windows Subsystem for Linux 2)というWindows OS上で動くLinux環境を提供するようになりました。
今回は、Macbookと同じようなLinux環境でCursor(もしくはVS code)が動くようにする手順をいつものように私のためのメモとして残して置きます。
WSL2の導入
WSL2の導入といっても、これで何か起きるわけではありません。Linuxのファイルシステムの導入とその上にUbuntuをインストールするのが目的です。Linux OSのインストールだけなので、何も動かないように感じてしまいます。特にWindowsやMac OSのようにGUIではなく、CUIで動かすのでやや物足りない感じになります。
Powershellの起動
Windows11から画面の下中央にある「Windows」アイコンをクリックして、検索窓に「Power Shell」と入力してください。
ちょっと重要なシステムの導入なので、右下にある「管理者として実行する」を選んで、Power Shellを起動してください。
WSL2の導入
ターミナル(いわゆるDOS窓の状態ですが)が開きますので、「wsl --install」とタイプして起動してください。
WSL2の前に試験的なWSLというのがあったので、WSLからWSL2への切り替えというのが紹介されているサイトが多いですが、Windows11であれば最初からWSL2になっていると思います。
Ubuntuの起動
WSL2のインストールが終わると、Ubuntuも一緒に導入されています。インストールの際には、Ubuntu OSでの「ユーザー名」と「パスワード」が聞かれますので、適当に決めて入力してください。
画面の下中央のWindowsアイコンから検索すると、「Ubuntu」アイコンが存在しているのが分かります。こちらをクリックすると、Ubuntuが起動します。
ubuntuでは「apt」というツールを使ってアプリを簡単にインストールすることができます。ここではAnacondaというプログラムのための仮想環境を入れる準備をします。
sudo apt update
sudo apt upgrade
上の2つのコマンドを実行しておきます。
ubuntu上にAnacondaをインストール
wget https://repo.anaconda.com/archive/Anaconda3-2024.XX-Linux-x86_64.sh
まずはインストーラをダウンロードします。Power Shellを起動して、上のコマンドを入力してください。
bash Anaconda3-2024.XX-Linux-x86_64.sh
ダウンロードしたら、上のコマンドでAnacondaのインストーラーを起動してインストールを進めます。終わったら、ubuntuのウインドウを再起動しておきましょう。
Cursorのインストール
Microsoftの開発するVisual Studio Code(いわゆるVS code)は偉大な開発エディタですが、いわゆる生成系AI(?)と言われるようなLLM(大規模言語モデル)が動くCursorというエディタがあります。ここではVS codeではなく、Cursorをインストールします。
ここではWindows OS上にCursorをインストールします。普通にCursorのサイトからダウンロードしてください。インストーラーをダウンロードしたら、Cursorのインストールを進めてください。
仮想環境の構築
Ubuntuのターミナルを起動します(WindowsアイコンからUbuntuのアイコンをクリックして起動してください)。以下のコマンドを入力して、仮想環境(ここでは「test_env」という名前)を構築してください。
conda create -n test_env python=3.10
anacondaの命令は「conda」で始まります。命令は「create」、引数としては、「-n」。これは仮想環境の名前という意味。最後にある「python=」は仮想環境に導入するpython環境になります。モジュールによりpythonのバージョンを調整します。
仮想環境をactivateする
conda activate test_env
仮想環境は毎回activateする必要があります。使い終わったらdeactivateします。(deactivateには仮想環境名を入れる必要はありません)
conda deactivate
Cursorの設定・機能拡張の導入
まずは、Cursorを立ち上げて、以下の機能拡張を導入します。
まずはWSLプラグインを入れます。WSL2上のubuntuをCursorと接続するためのプラグイン(機能拡張)です。下の図の矢印のアイコン(□が3つと1つのアイコン)が機能拡張のアイコンになります。検索欄に「WSL」と入力すると、WSLという名前の機能拡張があるので、「install」をクリックしてインストールを進めます。
WSLプラグインを導入したら、一度Cursorを再起動します。そのほかに必須のプラグインは「Python」・「Jupyter」を入れておきます。
CursorとWSL(ubuntu)を接続
ウインドウの左下に紫色のところ(「><」)がありますので、ここをクリックします。
クリックすると「Connect to WSL using Distro…」という選択肢が出てきますので、これを選びます。
Distribusionとして、「Ubuntu」が選択肢として出てくるので、これを選びます。
しばらくすると、「Opening….」ということで、最終的に以下のような表示になって、CursorとWSL: Ubuntuが接続されます。
Open a folder
再起動すると、どのフォルダを開くか質問されます。ここでUbuntuのファイルシステム内のフォルダを開くようにします。[WSL: Ubuntu]で始まるファイルを選びます。
仮想環境の起動とCursor内のターミナル
Cursorの左側のカラムの表示は左上のアイコンで切り替えます。ここでは先ほどの機能拡張ではなく、一番左の「フォルダ/ファイル」のアイコンを選びます。
jupyterというセル形式でプログラムを実行するpythonファイルを作成してみます。拡張子は「.ipynb」になります。(上の図では「test01.ipynb」というファイルを作りました)
仮想環境の選択
ファイルを作成すると、右上に「Select Kernel」という文字が出てきます。これをクリックすると、Python環境を選ぶという選択肢が出てきます。ここをクリックすると、先ほど作成した仮想環境(先ほどの例ではPython 3.10)を立ち上げることができます。
以下の中から仮想環境を選びます。目的に応じた仮想環境を作成しておくと便利です。
Pythonモジュールのインストール
セル内に書いたプログラムの実行は「Shift + Enter」で行います。
おそらくいろいろエラーが出たり、インストールを薦められたりします。以下のようなエラーが出た場合は、「conda」か「pip」を用いて、モジュールをインストールします。
conda install numpy
pip install numpy
上か下のどちらかの命令でnumpyというモジュールをインストールします。基本的なモジュールについては、condaで、その他はpipでという感じでよいと思います。
Cursor内でターミナルを開く
ここでターミナルを開く必要があるのですが、Cursorの中にはターミナルを表示することができます。ウインドウの右上にある下図の丸のアイコンを押すと、ターミナルが開きます。
するとターミナルが選べるので、Power Shellを別ウインドウで開かなくて済むので便利です。
ターミナルは仮想環境が選ばれていないので、以下のコマンドで仮想環境をactivateしておきます。
conda activate test_env
そして先ほどのnumpyなどのモジュールのインストールもできます。
conda install numpy
※ 忘れがちなことですが、これらモジュールはあくまでも個々の仮想環境にそれぞれインストールする必要があります。仮想環境をactivateする前にインストールしてしまわないようにしてください。
GPT-4oを使ってみる
最後に右側のカラムを開いてみます。
ここには、いわゆるChatGPTとチャットをするためのカラムが表示されています。
「Ctrl +Shift + P」というショートカットを押すと、Cursorの設定画面が開きます。
こちらでOpenAI APIのキーを入力すると、無料でカーソルが利用できます。この辺りは別の記事で書いてますので、そちらを読んでみてください。
「簡単なプログラムを書いて」とお願いしてみました。
まとめ
どのくらいの性能が出せるかわかりませんが、Macbookと同じような環境になったかと思います。Cursorを使っているだけだと、MacかWindowsかわかりません。私もこれからなので、ぼちぼち使ってみたいと思います。