Skip to content

MS_PythonOnWindows

nishi_74322014 edited this page Aug 31, 2026 · 1 revision

Python on Windows

概要

基本的にはコチラを参照。
以下は Windows 環境下での差異について。

詳細

インストール

Linux(WSL)

Linux(WSL)環境では標準でディストリビューション パッケージがインストールされている。

  • Ubuntu / Debian: apt install python3
  • CentOS / RHEL: dnf install python3 / yum install python3
  • Anaconda(データ分析・機械学習向け)などのディストリビューションもある。
  • 複数環境の共存が可能(例:python3.10, python3.12)

Windows

Windows 環境では標準でインストールされていない。

  • 公式 Python のインストーラーから(推奨)
    ユーザーが公式サイトからインストーラをダウンロードしてインストールする。

    • https://www.python.org/downloads/windows/

    • インストーラ、python-3.9.5-amd64.exe を使用し、

      • [Add Python 3.9 to PATH]にチェック。
      • パスがおかしいので[Customize installation]を選択。
      • 機能もオプションもフルにしてパス変更(C:\prog\python39)。
      • 最後に、パス制限解除のボタンが表示されたので、解除を行った。
      • (インストール時に PATH 追加のオプションのチェックを忘れるとコマンドが通らない)
  • MS ストアから(非推奨)

    • 以下を実行すると、MS ストアに遷移し、ソコから取得できる。
>python
  • ただし、制限があるらしいので、非推奨となっている。
    • Python Launcher がインストールされない。
    • ディレクトリやレジストリへのアクセスが仮想化される。

移行メモ(正誤): 元ページの「だたし」は「ただし」の誤記と判断し、修正した。

  • Anaconda から
    • 昔は Python のインストールに使用されていたらしいが、
      最近はデータサイエンス用で、ほぼ公式を使用するようになっている。
    • environment.yml を使用した特定バージョンのパッケージ・セットをインストールする
      と言う目的で有用な可能性がある。
    • ただし、最新の LLM 系ツールとの相性を考えると、
      pip + venv や Docker の柔軟な環境のほうが確実な事が多い。
    • 仮想環境ツールは Anaconda 専用のものが実装されているのでソレを使用することになる。

補足(Anaconda はライセンスにも注意): Anaconda のデフォルト チャネルは、
一定規模以上の組織での商用利用が有償(要ライセンス)である。
企業で使う場合は、conda-forge チャネルの利用や
Miniforge への切り替えを検討する必要がある。
本ページが「ほぼ公式を使用するようになっている」と述べている背景の 1 つ。

  • インストールの確認

    • 以下のように確認する。
>python
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z

>
  • 上記の終了は[Ctrl+Z]らしいので、以下の方が良さそう。
>python --version
Python 3.9.5
  • その他、以下のようなディストリビューションの選択肢もある。

    • WinPython(ポータブル版 Python)
    • Miniconda(軽量な Anaconda)
  • 複数環境の共存が可能(例:python3.10, python3.12)

補足(現在は winget でも入る): Windows 10のパッケージ・マネージャ
触れた winget からもインストールできる。

winget install Python.Python.3.12

スクリプトで環境構築を再現したい場合は、
インストーラの GUI 操作より確実である。

複数環境の共存

Linux(WSL)

Windows

  • 複数の Python をインストールできるが、環境変数 PATH の競合に注意が必要。

  • デフォルトで C:\Users\<User>\AppData\Local\Programs\Python\Python3x にインストールされる。

  • 公式推奨の py ランチャー(py.exe
    環境変数 PATH を操作せず、環境の切り替えができる。

    • py.exe はレジストリを見て、システムにインストールされている Python のバージョンをスキャンする。
    • Python 実行ファイルがどこにあるかを知っていて、パスに依存せずに適切なバージョンを起動できる。
  • 仮想環境

    • Python 3.3 以降では、標準で仮想環境ツールも使用可能になっている。
    • Anaconda には、Anaconda 専用の仮想環境作成ツールが含まれる。

補足(py ランチャーの使い方): バージョンを明示して起動できる。

py -0            # インストール済みバージョンの一覧
py -3.12 -m venv .venv
py -3.9  script.py

スクリプトの 1 行目に shebang(#!/usr/bin/env python3.12)を書くと、
Windows でも py がそれを解釈してバージョンを選ぶ
Linux との両対応スクリプトを書く際に有用。

仮想環境

venv で仮想環境を作成すれば、

  • pythonn.npipn.n を シンボリックリンクで、pythonpip で使える。
  • 用途毎に異なる特定バージョンのパッケージ・セットをインストールできる。

Linux(WSL)

Linux 上での仮想環境の使用方法。

Windows

以下のような違いがある(仮想環境名が myenv の場合)。

項目 Linux Windows
仮想環境の場所 myenv/bin/activate myenv\Scripts\activate.bat
activate 方法 . ./myenv/bin/activate myenv\Scripts\activate

補足(PowerShell では実行ポリシーに引っかかる): PowerShell から
myenv\Scripts\Activate.ps1 を実行すると、
既定の実行ポリシーによってブロックされることがある
シェル(スクリプト)の移行で触れた
「実行セキュリティポリシー機能」)。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

のようにプロセス スコープで緩めるのが、影響範囲が最小で済む。
なお、activate は PATH を書き換えるだけなので、
myenv\Scripts\python.exe を直接呼べば activate 自体を省略できる。

追加モジュール

Windows

Windows 環境限定で使えるモジュールがある。

  • win32com / pywin32: COM オートメーション
  • ctypes.windll: DLL 呼び出し
  • winreg: レジストリ操作
  • winsound: ビープ音など

補足: pywin32 を使えば、Python から
VBAWSH と同様に Office や WMI を操作できる。
シェル(スクリプト)の移行の移行先として
Python を選ぶ場合、既存の COM 資産を活かせる点は評価材料になる。

プロキシ設定

  • プロキシ設定

  • Windows 発のツールは Windows の設定を使用するようにできている。

  • Python のような Linux 発のツールは Linux 文化に基づいた設定が必要になる。

補足: 具体的には、pip は Windows の
[インターネット オプション]のプロキシ設定を見ず、
環境変数 HTTP_PROXY / HTTPS_PROXY(および NO_PROXY)や
pip.ini を参照する。
社内プロキシ環境で pip install が通らない場合、
ほぼこれが原因になる。

参考

本 Wiki 内


Tags: シェル, インフラストラクチャ, Windows, Linux

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally