0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11でWSL2でUbunutuを入れ、pyenvで仮想環境を構築する

Last updated at Posted at 2024-09-20

はじめに

DjangoをWSL2のUbunutuにインストールしたPythonのpyenvを利用した仮想環境に構築し、Djangoインストールするまで

構築環境の目標

Windows 11 home version 23H2
WSL2(Ubunutu) デフォルトでインストールされるバージョン
VSCODE
Python 3.12.3
Django 5.1.1

環境構築の下準備

Windows Updateをしておく。
スクリーンショット 2024-09-17 175553.png

Windows Terminalを最新の状態に更新する。 開くボタンのみになればOK
スクリーンショット 2024-09-17 180942.png

Windowsツールをクリック
スクリーンショット 2024-09-17 182341.png

Windows PowerShellを右クリックして管理者として実行

スクリーンショット 2024-09-17 182958.png

Windows power shellに下のコマンドをコピペする。 ctrl + vで貼り付けられます。

powershell
wsl --install

詳しくは下のページから見られます。

スクリーンショット 2024-09-17 211439.png

biosで仮想化が有効されてない場合ダメだったりするのでお持ちのPCのbios設定をしておいてください。

スクリーンショット 2024-09-17 215030.png

UNIX usernameに任意の名前を入れて
Passwordも作ってください。
打っても画面に表示されませんがしっかり認識されていますので問題ありません。

Ubunutu
sudo apt update
sudo apt upgrade

bashコマンドといいますがWSL2のUbunutuはCUI(コマンド ユーザー インターフェース)
でosのアップデートや周辺ソフトがアップデートされます。

image.png

上記コマンドを実行後はこのようになります。

バージョン管理ツールのGitをインストールします。Gitは後程利用します。

Ubunutu
sudo apt-get install git-all

pyenvをインストールするために必要な依存パッケージをインストールします。

bash
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
python-openssl git

Gitを使ってpyenvをインストールします。

Ubunutu
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

上記のコマンドでUbuntuの/root/.pyenvにpyenvをインストール

シェルの設定

bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
bash
exec "$SHELL"
bash
# pyenvにインストールできるPython一覧を取得(1ページごと)
pyenv install -l | less

こちらのPythonJapanが紹介している、非公式ダウンロードリンクからsourceタブを開いて、好きなPythonのバージョンをDLしてください。
自分の場合は3.12.3

スクリーンショット 2024-09-20 173817.png

ダウンロードしたファイルはエクスプローラーからLinuxのUbunutuフォルダのホーム、自分のユーザー名のフォルダに入れておきます。

スクリーンショット 2024-09-20 174625.png

bash
#/home/ユーザ名 以外に配置した場合は、cdコマンドでファイルがある場所へ移動する

#圧縮ファイルの解凍
#Pyhtonのバージョンによってファイル名が変わるので自分のバージョンに書き換えてください。
tar xJf Python-3.12.3.tar.xz

#解凍後のディレクトリに移動
#Pyhtonのバージョンによってファイル名が変わるので自分のバージョンに書き換えてください。
cd Python-3.12.3

#ビルド、インストールを実行
./configure
make
sudo make install

Python 3.12.3 のインストール
pyenv を使用して、指定したバージョンのPythonをインストールします。

bash
pyenv install 3.12.3

インストールが完了したら、グローバルで使用するPythonのバージョンを設定します。

bash
pyenv global 3.12.3

インストールが正しく行われたか確認するために、以下のコマンドを実行します。

bash
python --version

Python 3.12.3 と表示されれば成功です。

仮想環境の作成

プロジェクトごとに依存関係を管理するために、仮想環境を作成します。ここでは venv を使用します。

bash
python -m venv myenv

仮想環境を有効にします。

bash
source myenv/bin/activate

Djangoのインストール

仮想環境内で pip を使用してDjangoをインストールします。

bash
pip install --upgrade pip
pip install Django==5.1.1

インストールが完了したら、Djangoのバージョンを確認します。
5.1.1 と表示されれば成功です。

Djangoプロジェクトの作成

新しいDjangoプロジェクトを作成します。ここでは myproject という名前で作成します。

bash
django-admin startproject myproject

プロジェクトディレクトリに移動します。

bash
cd myproject

開発用サーバーを起動して動作確認を行います。

bash
python manage.py runserver

ブラウザで http://127.0.0.1:8000/ にアクセスし、Djangoのウェルカムページが表示されれば成功です。

VSCodeの設定

VSCodeを使用して開発を行うために、WSL2と連携させます。

VSCodeのインストール
Windows側にVSCodeがインストールされていない場合は、公式サイトからインストールしてください。

Remote - WSL拡張機能のインストール
VSCodeを開き、拡張機能マーケットプレイスから「Remote - WSL」を検索してインストールします。

WSL環境でVSCodeを起動
WSL2のUbuntuターミナルで以下のコマンドを実行します。

bash
code .

これにより、現在のディレクトリがVSCodeで開かれ、WSL2環境と連携されます。

Python拡張機能のインストール
VSCode内でPython拡張機能をインストールします。これにより、コード補完やデバッグ機能が利用可能になります。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?