🎉

WindowsのPython環境構築のパターン

2021/02/13に公開

概要

Pythonの環境構築では、インタプリタ(python)バージョン切替、仮想環境(インタプリタバージョンとパッケージのセット)切替、そしてパッケージ管理を選定する必要があります。

ここではWindowsのPython環境構築のパターン、パターンごとの手順(リンク)、そして一部のパターンについて説明を記載します。

Python環境構築のパターン

Windowsではおおむね以下のパターンとなります。

パターン どこに構築するか インタプリタ切替 仮想環境切替 パッケージ管理
Anaconda Windows Anaconda Anaconda Anaconda
Python + py.exe + venv + pip Windows py.exe venv pip
WSL2(Ubuntu) + pyenv + venv + pip WSL2(Ubuntu)上 pyenv venv pip
Python + py.exe + pipenv Windows py.exe pipenv pipenv
WSL2(Ubuntu) + pyenv + pipenv WSL2(Ubuntu) pyenv pipenv pipenv
WSL2(Ubuntu) + pyenv + poetry WSL2(Ubuntu) pyenv poetry poetry
WSL2(Ubuntu) + Docker WSL2(Ubuntu) - - pip

💡 個人的には、なるべく標準添付ということを考えてpy.exe(pyenv) + venv + pipを採用しています。
💡 JupyterLabなどで試行錯誤による機械学習が目的で、利用規約(商用利用の条件(無償 or 有償))に問題ない場合は、Anaconda(Miniconda)もお勧めと思います。
💡 WSL2上のDockerからGPUを使用するCUDA on WSL2が正式版になれば、WSL2(Ubuntu) + NVIDIA Docker on Linuxも検討対象となると思います(2021年1月31日時点でプレビュー版)。

パターンごとの手順

Windows 用のパターンごとの手順をリンクします。
💡 Anaconda の手順は簡単(Anacondaからインストーラーをダウンロードしてインストール)なので省略します。

パターン どこに構築するか 参考リンク
Python + py.exe + venv + pip
Python + py.exe + pipenv
Windows Python:
Anacondaが有償化されて困っている人に贈る、Pythonのパッケージ管理
CUDA(GPU):
Windows版TensorFlow 1.13~1.15でGPUを使う (CUDAのインストール)
WSL2(Ubuntu) + pyenv + venv + pip WSL2(Ubuntu) Windows 10 WSL 2(Linux 用 Windows サブシステム) + LinuxでのPython環境作成手順
WSL2(Ubuntu) + Docker WSL2(Ubuntu) VSCodeでWSL2上のDockerコンテナ内コードをデバッグ
WSL2(Ubuntu) + NVIDIA Docker on Linux WSL2(Ubuntu) 手順:
CUDA on WSL2 & VSCode Remote Containersによる開発環境構築・検証
最新情報:
待ってました CUDA on WSL 2
WSL2(Ubuntu) + JupyterLab WSL2(Ubuntu) + Miniconda、WSL2構築後の手順:
WSL 2 環境で miniconda を使って JupyterLab を簡単に起動できるようにした話
+ miniforge、WSL2構築後の手順:
WSL 2 環境で miniforge を使って JupyterLab を簡単に起動できるようにした話

各パターンの説明

💡 pipenv、poetry は後程追加予定です。

Anaconda

  • Windows上にAnacondaをインストール
  • インタプリタ切り替え、仮想環境切り替え、パッケージ管理をまとめて行うことができる
  • 機械学習に関連したライブラリが最適化されている(速度が速い)
  • 公式リポジトリの利用規約は要確認(商用利用では条件によっては有償)

Python + py.exe + venv + pip

  • Windows上にPython Windows版をインストール
  • Windows版のPythonはインタプリタ切替のランチャ(py.exe)が標準添付
  • venv等で仮想環境を構築し、pipでパッケージ管理を行う
  • venvはPython3.3以降に標準付属
  • pipはPython3.4以降に標準付属
  • Windowsでは動作しないライブラリもある(例:uvloop)

Python + py.exe + venv + pip コード例

py -3.6 -m venv .venv
& .\.venv\Scripts\Activate.ps1
python --version
pip install -r requiremtns.txt 

WSL2(Ubuntu) + Python + pyenv + venv + pip

  • Windows上にWSL2でUbuntuをインストールし、Ubuntu上にPython環境を構築
  • pyenvをインストールしてインタプリタのインストールと切り替え
  • venv等で仮想環境を構築し、pipでパッケージ管理を行う
  • venvはPython3.3以降に標準付属
  • pipはPython3.4以降に標準付属
  • WSL2の機能でUbuntu上のファイルをWindowsエクスプローラーで操作できる

WSL2(Ubuntu) + Python + pyenv + venv + pipコード例

pyenv shell 3.6.9
python -m venv .venv
source .venv\bin\activate
python --version
pip install -r requiremtns.txt 

💡 WSL2上のDockerからGPUを使用する実装も進んでいます(2021年1月31日時点でプレビュー版)。
 待ってました CUDA on WSL 2 - Qiita

WSL2(Ubuntu) + Python + pipenv

🚧 作成中

WSL2(Ubuntu) + Python + poetry

🚧 作成中

Discussion