1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2環境にuvを用いてPython環境を構築し、VSCodeから利用する

Last updated at Posted at 2024-09-20

はじめに

WSL2上にPython環境を構築したため、備忘録として記録する。

WSL2 関連

1. WSL2のインストール

インストール済みのため割愛

2. WSLのアップデート

PS > wsl --update
更新プログラムを確認しています。
Linux  Windows サブシステムの最新バージョンは既にインストールされています。
PS > wsl --version
WSL バージョン: 2.2.4.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.61

3. Ubuntu 24.04 LTSをインストール

PS > wsl --install -d Ubuntu-24.04
PS > ...
PS > wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-24.04      Running         2

4. Ubuntu 24.04の初期設定

$ sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list.d/ubuntu.sources
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install language-pack-en language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8
$ echo $LANG
ja_JP.UTF8

uv 関連

1. uv のインストール

$ curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.4.13 x86_64-unknown-linux-gnu
installing to $HOME//.cargo/bin
  uv
  uvx
everything's installed!

To add $HOME/.cargo/bin to your PATH, either restart your shell or run:

    source $HOME/.cargo/env (sh, bash, zsh)
    source $HOME/.cargo/env.fish (fish)

2. Shell 補完の設定

$ echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc

3. バージョンの確認

$ uv --version
uv 0.4.13

4. Python 仮想環境の作成

$ mkdir python_projects 
$ cd python_projects
$ uv init test_project
$ cd test_project
$ pwd
$HOME/python_projects/test_project

例) beautifulsoup4 のインストール

$ uv add beautifulsoup4
Using Python 3.12.3 interpreter at: /usr/bin/python3.12
Creating virtual environment at: .venv
Resolved 3 packages in 58ms
Prepared 2 packages in 26ms
Installed 2 packages in 1ms
 + beautifulsoup4==4.12.3
 + soupsieve==2.6

VSCode との連携

1. 拡張機能のインストール

  • Remote Development

2. Remote Development で WSL2上に先程作成したtest_projectを開く

  1. hello.pyが存在するため、以下の内容を記載
    from bs4 import BeautifulSoup
    soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
    print(soup.prettify())
    
  2. WSL環境上にPython拡張機能のインストールを実施

3. VSCodeが自動的に.venvを認識するため、VSCodeのターミナルを起動し普段通りにPythonを実行する

$ python ./hello.py
<p>
 Some
 <b>
  bad
  <i>
   HTML
  </i>
 </b>
</p>

Ruff の有効化

1. Ruff のインストール

$ uv tool install ruff
$ uv tool update-shell

2. VSCode へのRuff拡張機能のインストール

3. settings.json に Ruff 関連の設定を追加

{
    "[python]": {
        "editor.codeActionsOnSave": {
            "source.fixAll": "explicit",
            "source.organizeImports": "explicit"
        },
        "editor.defaultFormatter": "charliermarsh.ruff"
    },
    "ruff.lineLength": 120,
    "ruff.lint.ignore": [
        "F401"
    ],
    "ruff.lint.preview": true,
    "ruff.lint.select": [
        "C",
        "E",
        "F",
        "W",
        "I"
    ],
    "ruff.logFile": "~/logs/ruff.log",
    "ruff.logLevel": "debug",
    "ruff.nativeServer": "on",
}

4. WSL2のログを確認

$ cat ruff.log
   0.002372427s DEBUG ThreadId(04) ruff_server::session::index::ruff_settings: Ignored path via `exclude`: $HOME/python_projects/test_project/.venv
   0.006645611s  INFO ruff:main ruff_server::server: Configuration file watcher successfully registered
   0.006686709s DEBUG ruff:worker:0 ruff_server::resolve: Included path via `include`: $HOME/python_projects/test_project/hello.py
  25.151748855s  INFO     ruff:main ruff_server::server::connection: Shutdown request received. Waiting for an exit notification...
  25.156159853s  INFO     ruff:main ruff_server::server::connection: Exit notification received. Server shutting down...
  • Ruff が native language server で動作していることを確認

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?