Python 3.10 Windows開発環境構築ガイド
【対象となる作業】
本ガイドは以下の5つの作業で構成される。
- Python 3.10 のインストール wingetコマンドを使用し、Python 3.10をシステム領域にインストールする。あわせて、Windowsの260文字パス長制限の解除と、Pythonへのシステムパス設定を行う。
- AIエディタ Windsurf のインストール Pythonプログラムの編集・実行環境として、AIエディタ Windsurf をwingetコマンドでインストールする。
- pip と setuptools の更新 Pythonのパッケージ管理ツールであるpipとsetuptoolsを最新版に更新する。
- インストール結果の確認 Pythonのパス確認、バージョン確認、pipの動作確認を行う。さらに、NumPyとMatplotlibを使用したsin関数グラフ描画プログラムにより、Windsurf上での実行を検証する。
- 数値演算の性能確認 NumPyとscikit-learnをインストールし、2000×2000の乱数行列を用いた行列積、主成分分析(PCA)、特異値分解(SVD)、k-Meansクラスタリングの実行時間を測定する。
【前提条件】
- Windows環境であること
- 管理者権限でコマンドプロンプトを実行できること
- wingetが利用可能であること
【関連する外部ページ】
- Python公式ページ: https://www.python.org/
- Windsurf公式ページ: https://windsurf.com/
【サイト内の関連ページ】
ここでは、最低限の事前準備について説明する。機械学習や深層学習を行う場合は、NVIDIA CUDA、Visual Studio、Cursorなどを追加でインストールすると便利である。これらについては別ページ https://www.kkaneko.jp/cc/dev/aiassist.htmlで詳しく解説しているので、必要に応じて参照してください。
Python 3.10 のインストール
インストール済みの場合は実行不要。
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
REM Python 3.10 をシステム領域にインストール
winget install --scope machine --id Python.Python.3.10 -e --silent --accept-source-agreements --accept-package-agreements
REM パス長制限の解除(Windowsの260文字パス制限を解除し、長いパスを扱えるようにする)
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
reg query "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled
REM Python のパス設定
set "PYTHON_PATH=C:\Program Files\Python310"
set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python310\Scripts"
if exist "%PYTHON_PATH%" setx PYTHON_PATH "%PYTHON_PATH%" /M >nul
if exist "%PYTHON_SCRIPTS_PATH%" setx PYTHON_SCRIPTS_PATH "%PYTHON_SCRIPTS_PATH%" /M >nul
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set "SYSTEM_PATH=%b"
echo "%SYSTEM_PATH%" | find /i "%PYTHON_PATH%" >nul
if errorlevel 1 setx PATH "%PYTHON_PATH%;%PYTHON_SCRIPTS_PATH%;%SYSTEM_PATH%" /M >nul
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
AI エディタ Windsurf のインストール
Pythonプログラムの編集・実行には、AI エディタの利用を推奨する。ここでは,Windsurfのインストールを説明する。
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
winget install --scope machine --id Codeium.Windsurf -e --silent --accept-source-agreements --accept-package-agreements
【関連する外部ページ】
Windsurf の公式ページ: https://windsurf.com/
pip と setuptools の更新
- 以下の手順を管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。 - 次のコマンドを実行する.
python -m pip install -U pip setuptools
Python に関しての情報取得
Python にトラブルがあった時に役に立つように,情報取得の手順をまとめている.
- Python にパスが通っていることの確認
where python - python のバージョンの確認
python --version -
Python のビルドに用いられたコンパイラのバージョン番号の確認
python import sys print(sys.version)実行すると、Pythonのバージョンとビルドに用いられたコンパイラのバージョン番号が表示される
- 次のPythonプログラムを実行し,バージョン番号を確認
from distutils.msvc9compiler import * get_build_version() - exit() で終了
- pip の動作確認
Python のパッケージも同時にインストールされることが分かる.
* エラーメッセージが出ないことを確認.
pip list
確認のため,Windsurf で,次の Python プログラムを実行してみる.
次のプログラムは,NumPy と Matplotlib を使用して,0から6までの範囲のsin関数のグラフを描画する.warnings モジュールを使用して Matplotlib の警告表示を抑制し,Matplotlib では,デフォルトのスタイルを使用する.
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore') # Suppress Matplotlib warnings
x = np.linspace(0, 6, 100)
plt.style.use('default')
plt.plot(x, np.sin(x))
plt.show()
性能の確認
- 以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。python -m pip install -U numpy scikit-learn scikit-learn-intelex - numpy の動作確認
Python プログラムを実行する
import numpy as np print(np.sin(0)) exit()
- Python の数値演算等の性能確認
Python プログラムを実行する
次のプログラムは,NumPy と scikit-learn を使用して,行列計算とデータ分析を行う.- 2000x2000 の乱数行列 X と Y を生成し、それらの行列積を計算する.
- scikit-learn の PCA を使用して,X の主成分分析を行い,2次元に次元削減する.
- NumPy の svd 関数を使用して、X の特異値分解を行う.
- scikit-learn の KMeans を使用して,X に対して10クラスタのk-means クラスタリングを行う.
各操作の実行時間を測定し,結果を出力するプログラムである.
import time import numpy import numpy.linalg import sklearn.decomposition import sklearn.cluster X = numpy.random.rand(2000, 2000) Y = numpy.random.rand(2000, 2000) # 行列の積 a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a) # 主成分分析 pca = sklearn.decomposition.PCA(n_components = 2) a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a) # SVD a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a) # k-means a = time.time(); kmeans_model = sklearn.cluster.KMeans(n_clusters=10, random_state=10).fit(X) labels = kmeans_model.labels_ print(time.time() - a)実行結果の例
- 行列の積: 約0.05 秒
- 主成分分析: 約0.06 秒
- SVD: 約1.30 秒
- k-Means クラスタリング: 約2.99 秒