環境
- Windows 11
- WSL2(Ubuntu 22.04.2)
VS Code のインストール
公式ページよりインストーラーをダウンロードし、Windows側にインストールします。
Visual Studio Code - Code Editing. Redefined
インストール後、VS Code を起動し、画面左の「拡張機能」パネルにて以下の拡張機能をインストールします。
名前 | 識別子 | 内容 |
---|---|---|
Python | ms-python.python | VS Code用Python拡張機能 |
Pylance | ms-python.vscode-pylance | Python言語サーバー |
WSLの設定
- Windows側のPATH設定の引き継ぎ解除
- VS Codeのエイリアス追加
を行います。
WSL - Ubuntu のターミナルを開き、以下を実行します。
echo 'alias code="'`which code`'"' >> ~/.bashrc
cat /etc/wsl.conf >> ~/wsl.conf.tmp
echo '[interop]' >> ~/wsl.conf.tmp
echo 'appendWindowsPath = false' >> ~/wsl.conf.tmp
sudo mv ~/wsl.conf.tmp /etc/wsl.conf
sudo chown root:root /etc/wsl.conf
WSL2 ではデフォルトで Windows側の PATH が引き継がれます。
python
コマンドなど、Windows側のコマンドが使用されるとうまく動作しないので、
PATH が引き継がれないように設定を変更しています。
また、PATH設定の引き継ぎ解除により、Windows側の VS Code への PATH が通っていない状態になるため、
エイリアスを追加しています。
上記コマンドにより、以下の通り各ファイルに追記が行われています。
[interop]
appendWindowsPath = false
alias code='"/mnt/c/Program Files/Microsoft VS Code/bin/code"'
設定を反映するため、WSL を再起動します。
Windows側のターミナルを開き、以下を実行します。
wsl --shutdown
再度、WSL - Ubuntu のターミナルを開き、VS Code コマンドのエイリアス設定を確認します。
command -v code
# -> alias code='"/mnt/[VS Codeのパス]"'
Python(Pyenv)のインストール
Python については WSL - Ubuntu に既にインストールされていたりもしますが、
プロジェクトごとにPythonのバージョンを切り替えて使用することが難しいです。
Pyenv を使用することで、複数のバージョンをインストールし、切り替えて使用することが可能となります。
pyenv/pyenv: Simple Python version management
上記ページのインストール手順に従い、以降のコマンドを実行し、Pyenv のインストールを行います。
# 依存パッケージのインストール
sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# Pyenv のインストール
curl https://pyenv.run | 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
source ~/.bashrc
参考:
- 依存パッケージのインストール
Home · pyenv/pyenv Wiki - Suggested build environment - Pyenv のインストール
pyenv/pyenv: Simple Python version management - Automatic installer
実行後、以下にてインストールを確認します。
pyenv --version
# -> pyenv X.X.X
Pyenv による Python のインストール
Pyenv にて任意のバージョンの Python をインストールできますが、
ここでは、3.10.11
をインストールすることとします。
pyenv install 3.10.11
pyenv global 3.10.11
python --version
# -> Python 3.10.11
Pyenv の使用方法の詳細については省きますが、主なコマンドは以下の通りです。
コマンド | 内容 |
---|---|
pyenv install --list | インストール可能な Python のバージョン一覧を表示 |
pyenv install [任意のPythonのバージョン] | 特定バージョンのPythonのインストール |
pyenv global [任意のPythonのバージョン] | 特定バージョンのPythonをグローバル設定として指定 |
パッケージ管理ツールを使用した開発環境構築
Python のパッケージ管理ツールはいくつかあるかと思いますが、
以降、代表的な2つのツールを使用した構築方法について記載します。
- Pipenv
- Poetry
Pipenv の場合
Pipenv のインストール
以下のコマンドにて、インストールを行います。
pip install pipenv
# プロジェクト配下にPython仮想環境を作成するように環境変数を設定
echo 'export PIPENV_VENV_IN_PROJECT=1' >> ~/.bashrc
source .bashrc
下段の環境変数設定について。
Pipenv はデフォルトでは ~/.local/share/virtualenvs/
配下に仮想環境を作成しますが、
環境変数 PIPENV_VENV_IN_PROJECT
を設定することでプロジェクト配下に仮想環境を作成するようになります。
仮想環境作成
任意のディレクトリ(ここではpipenvtest
とします)を作成し、Python仮想環境を作成します。
mkdir pipenvtest
cd pipenvtest/
pipenv --python 3.10
上記を実行すると、.venv
ディレクトリが追加され、Python仮想環境が作成されます。
他の Pythonバージョンを使用する場合は、pyenv install [Pythonバージョン]
にて Python をインストールした後に、
pipenv --python X.X
でバージョンを指定します。
開発用パッケージのインストール
コードフォーマッター、Lint関連の以下のパッケージをインストールします。
- black
- flake8
- mypy
pipenv install black flake8 mypy --dev
VSCode の起動と初期設定
以下のコマンドにて、VS Code を起動します。
code .
拡張機能のインストール
起動後、画面左の「拡張機能」パネルにて、以下の拡張機能をインストールします。
- Python
- Pylance
Windows側の VS Code に上記拡張機能がインストール済みであれば、
一覧上に表示されるので、WSL: Ubuntu・・・ にインストール
をクリックすることで、
WSL側へのインストールが行われます。
VSCodeの設定
コードフォーマッター、Lint関連を有効にするため、
.vscode/settings.json
を作成し、以下をコピペしてください。
{
"python.analysis.completeFunctionParens": true,
"python.formatting.provider": "black",
"python.languageServer": "Pylance",
"python.linting.flake8Args": ["--max-line-length=88"],
"python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": true,
"python.linting.pylintEnabled": false,
"python.terminal.activateEnvInCurrentTerminal": true
}
また、プロジェクトディレクトリ直下に .env
を作成し、以下をコピペしてください。
PYTHONPATH=${PYTHONPATH};.
上記を行うことで、実行時にプロジェクト配下のソースファイルのインポートが行われるようになります。
サンプルプログラムの作成
以降、動作確認のためのサンプルプログラムになります。
サンプルプログラム用のパッケージ追加を行います。
pipenv install numpy matplotlib
プロジェクト直下に test.py
を作成し、以下をコピペしてください。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi)
y = np.sin(x)
plt.plot(x, y)
plt.show()
ここまでの設定がうまくいっていれば、
画面右下の Python 環境の表示で、作成した仮想環境が選択されていると思います。
また、ドキュメントの表示やコード補完、フォーマッター、Lint が効くはずです。
サンプルプログラムの実行
test.py
を開いた状態で、「実行」パネルを開き、
「launch.json ファイルを作成します」→ 「Python File」と選択します。
vscode/launch.json
が作成され、Python用の実行構成が設定されます。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 現在のファイル",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}
再度、test.py
を開いた状態で、F5キーを押下するか
「実行」パネルで「Python: 現在のファイル」を選択して実行ボタンをクリックすることで、実行されます。
このサンプルプログラムでは以下のようなグラフが表示されます。
Poetry の場合
Poetry のインストール
以下のコマンドにて、インストールを行います。
curl -sSL https://install.python-poetry.org | python -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source .bashrc
# プロジェクト配下にPython仮想環境を作成するように設定を追加
poetry config virtualenvs.in-project true
下段の設定追加については、Pipenv の場合の PIPENV_VENV_IN_PROJECT
と同様に、
設定することでプロジェクト配下に仮想環境を作成するようになります。
仮想環境作成
任意のディレクトリ(ここではpoetrytest
とします)を作成し、Python仮想環境を作成します。
mkdir poetrytest
cd poetrytest/
poetry init
以降のように対話形式となり、基本的に Enter 連打のデフォルト設定でよいですが、
Author [None, n to skip]:
のところだけ、n
の入力が必要でした。
Package name [poetrytest]:
Version [0.1.0]:
Description []:
Author [None, n to skip]: n
License []:
Compatible Python versions [^3.10]:
Would you like to define your main dependencies interactively? (yes/no) [yes]
(中略)
Package to add or search for (leave blank to skip):
Would you like to define your development dependencies interactively? (yes/no) [yes]
Package to add or search for (leave blank to skip):
Generated file
(中略)
Do you confirm generation? (yes/no) [yes]
上記の実行で、Pipenv の場合と同様に .venv
にPython仮想環境が作成されます。
以降
以降は Pipenv と同様の手順になりますが、
パッケージインストールのみ、以下のように poetry add
コマンドを使用することになります。
poetry add black flake8 mypy --dev
poetry add numpy matplotlib