こんにちは。いーかです。
できたところまででOK。今日は『ここまで進んだ』が成果です。
この回は、分析より先に 「迷子の原因(別のPythonで動いてる問題)」を消す回です。
30秒まとめ(ここだけ読めばOK)
- Pythonは1台のPCに 複数入ってるのが普通です
- そのせいで「VS Codeは3.13っぽいのに、ターミナルは3.10」みたいなズレが起きます
- なので最初にやるのは勉強じゃなくて 確認(どのPythonで動いてるか)
- 確認の答えは
sys.executable(いま動いてるPython本体の住所)
たとえ話(知識ゼロ向け)
Pythonを「工場の機械」だと思ってください。
- PCの中に、古い機械(例:Python3.10)と新しい機械(例:Python3.13)が並んでいることがある
- どっちの機械が動いたかは、見た目だけでは分からない
- だから「機械の銘板(住所)」を出して確認する
→ それがsys.executableです
⚠ Pythonのバージョンは要確認(ここ大事)
この記事では例として Python 3.13 を使っていますが、読者の環境によって最適は変わります。
- フェーズ1(標準ライブラリ中心)なら、3.10〜3.13でも学習自体は可能
- ただし迷子防止のために、「どのPythonで動いているか」を必ず確認します
👉 ここからは、確認のための手順です。
今日のゴール(勝ち判定)
次の2つが分かれば勝ちです。
- いま動いてるPythonのバージョン(3.13/3.10など)
- いま動いてるPython本体の場所(どのpython.exeか=
sys.executable)
✅いまの状況で選ぶ(最短)
- すでに
.venvがある → 「ステップ3:直呼びで実行」へ .venv\Scripts\python.exeが無い → 「ステップ2:.venvを作る」へpythonが古いPythonを指す(3.10など) → 正常です。このシリーズは直呼びで進めます
ステップ1:確認用ファイルを作る(コピペでOK)
まず、VS Codeで新規ファイルを作って保存します。
- フォルダ:
D:\AI\Rblog(例) - ファイル名:
check_python.py
中身はこれ(コピペ):
# check_python.py
import sys
import platform
print("implementation:", platform.python_implementation())
print("version:", sys.version.replace("\n", " "))
print("executable:", sys.executable)
print("prefix:", sys.prefix)
これは何を見てるの?
implementation:CPythonかどうか(普通はCPython)version:Pythonのバージョン(例:3.13.x)executable:いま動いてるpython.exeの場所(最重要)prefix:仮想環境なら.venvの場所になる(勝ち判定に効く)
ステップ2:.venv(専用のPython環境)を作る
.venv は「このフォルダ専用のPython」を作る箱です。
ここを作ると、あとでpipやライブラリで迷子になりにくくなります。
PowerShellで作業フォルダに移動して実行:
PS D:\AI\Rblog> py -3.13 -m venv .venv
※3.13は例。入っているバージョンに合わせてOK。
もし不明ならpy -0pで一覧を確認できます。
ステップ3:このシリーズの正規ルート(直呼び)で実行する
知識ゼロでも迷子にならないように、先にルールを決めます。
✅ **このシリーズの正解の実行方法(正規ルート)**はこれ:
PS D:\AI\Rblog> .\.venv\Scripts\python.exe check_python.py
理由:python はPATHでズレやすいけど、これは 必ずこのフォルダの .venv で動くからです。
✅ 実行例(勝ち:.venv のPythonで動いてる)
実行:
PS D:\AI\Rblog> .\.venv\Scripts\python.exe check_python.py
出力例(こうなればOK):
implementation: CPython
version: 3.13.9 (tags/v3.13.9:8183fa5, Oct 14 2025, 14:09:13) [MSC v.1944 64 bit (AMD64)]
executable: D:\AI\Rblog\.venv\Scripts\python.exe
prefix: D:\AI\Rblog\.venv
✅ 見るポイント
executable:とprefix:に .venv が入っていれば勝ち
ここが2回目の罠:pipも同じ(必ずvenv側で叩く)
pipは「どのPythonに紐づいているか」が超大事です。
だからpipも、必ず venvのpython経由で叩きます。
PS D:\AI\Rblog> .\.venv\Scripts\python.exe -m pip --version
✅ 実行例(pipも勝ち:.venv 側のpipを見てる)
出力例(こうなればOK):
pip 25.2 from D:\AI\Rblog\.venv\Lib\site-packages\pip (python 3.13)
✅ 見るポイント
from ...\.venv\Lib\site-packages\pipが出ればOK
⚠ よくある例(ズレてるけど異常じゃない)
もしこう出ても、焦らなくてOKです。
PS D:\AI\Rblog> python -m pip --version
出力例:
pip 25.3 from C:\Users\...\Python310\lib\site-packages\pip (python 3.10)
これは「PATHのpython」が3.10を指してるだけ。
このシリーズでは python は使わず、.venv\Scripts\python.exe を正規にします。
仕上げ:ズレを“証拠”で見抜く(2行で理解できる)
PS D:\AI\Rblog> python -c "import sys; print(sys.executable)"
PS D:\AI\Rblog> .\.venv\Scripts\python.exe -c "import sys; print(sys.executable)"
出力が
- 1行目:
C:\...\Python310\python.exe - 2行目:
D:\...\Rblog\.venv\Scripts\python.exe
になっていれば、仕組みが理解できた証拠です。
第1回の結論(ここだけ覚えればOK)
- Pythonは複数入ってることが多い
- 真実は
sys.executable - このシリーズの正規ルートは
.venv\Scripts\python.exe直呼び - pipも同じく
.venv\Scripts\python.exe -m pipが正解
ミニクイズ(答えは末尾)
Q1. いま動いてるPython本体の“住所”を出すのはどれ?
Q2. python が古いPythonになるのはなぜ?
Q3. このシリーズの正規ルート(実行方法)は?
今日の1アクション
これだけやればOK:
PS D:\AI\Rblog> .\.venv\Scripts\python.exe check_python.py
今日のひとこと
「Pythonが難しい」より先に、
「別のPythonで動いてた」が一番もったいない。
ここまでできたら、もう勝ちです。
ミニクイズ解答(ここにまとめます)
A1. sys.executable
A2. python はPATHにあるPythonを使うから(古いのが先に見つかることがある)
A3. .\.venv\Scripts\python.exe check_python.py


コメント