Visual Studio 2022でPythonワークロードをオフラインインストールする完全手順|レイアウト作成・noWeb・response.jsonまで網羅

社内の閉域・隔離環境でも、Visual Studio の「Python 開発」ワークロード(PTVS)を確実・安全に導入できるよう、オフラインレイアウトの作成から持ち込み、セットアップ、維持管理、Python 実行環境や pip パッケージのオフライン準備までを一気通貫で解説します。現場でそのまま使えるコマンドとチェックリストを豊富に掲載しています。

目次

Visual Studio 用 Python 拡張機能をオフラインでインストールする方法

質問概要

インターネットに接続できない社内 PC へ Visual Studio の Python 開発ワークロード(PTVS) を導入したい。オフライン用のインストーラー(レイアウト)の入手・作成方法と、実機でのセットアップ手順、さらに運用上の注意点や Python 本体/pip パッケージのオフライン導入手順まで知りたい。

まず押さえる要点(3 分で全体像)

  • レイアウト作成は「ブートストラッパー(vs_*.exe)」で行う:vs_community.exe / vs_professional.exe / vs_enterprise.exe を使い、--layout でオフライン用パッケージ群を取得します。
  • Python ワークロードの ID は Microsoft.VisualStudio.Workload.Python。--add に指定します。
  • 完全オフラインでのクライアント導入は --noWeb を使います。
  • 日本語パッケージは --lang ja-JP を指定。利用可能なロケール一覧は公式の言語ロケール表を参照。
  • 容量目安:1 言語で 40〜50 GB 程度(エディションによる)。
  • Python 実行環境は別途用意:python.org の CPython もしくは Anaconda/Miniconda のオフライン版を併せて持ち込みます。

クイック手順(要点表)

ステップコマンド / 操作補足ポイント
① ブートストラッパー入手オンライン PC で Visual Studio の vs_community.exe / vs_professional.exe / vs_enterprise.exe をダウンロードレイアウト作成は vs_installer.exe ではなく vs_*.exe を使います。
② レイアウト生成REM 管理者権限の cmd で実行 vs_community.exe ^ --layout C:\VSOffline ^ --add Microsoft.VisualStudio.Workload.Python ^ --includeRecommended ^ --lang ja-JP容量は 40〜50 GB 目安。必要に応じ --includeOptional、x64/ARM64 両対応なら --arch all。
③ セキュリティ確認レイアウト一式を AV/EDR/静的解析に通す。ハッシュ確認:Get-FileHash または certutil -hashfile ... SHA256証明書関連のエラーが出たらレイアウト内 Certificates を手動インポート。
④ オフライン PC に持込・導入C:\VSOffline\vs_community.exe ^ --noWeb ^ --add Microsoft.VisualStudio.Workload.Python ^ --includeRecommended--noWeb で外部通信を遮断して導入。
⑤ Python 本体を導入CPython(python.org)のオフラインインストーラー or Anaconda/Miniconda のオフライン版を実行PTVS はランタイムを同梱しないため、別途インタープリターを用意。

重要な注意点

  • 「Download all, then install(すべてダウンロードしてからインストール)」は転送用途ではない:同一マシンでの前取り寄せ機能です。他の PC へ配布する場合は必ず --layout で作成したレイアウトを使います。
  • オフライン導入は --noWeb:レイアウトに含まれないコンポーネントを選ぶとダウンロードを試みます。UI を使う場合も、レイアウト作成時と同じ構成に限定してください。
  • 証明書エラー対策:Install certificates required for Visual Studio offline installation の手順でレイアウト内の証明書を OS にインポートすると解消します。

実践編:現場で使える詳細手順

オンライン PC でレイアウトを作る

  1. ブートストラッパーをダウンロード
    使うエディションに対応する vs_community.exe / vs_professional.exe / vs_enterprise.exe を取得して、保存先(例:C:\VSOffline)に置きます。
  2. レイアウト生成コマンド
    REM 例:Community + Python ワークロード + 日本語 cd /d C:\VSOffline vs_community.exe --layout C:\VSOffline ^ --add Microsoft.VisualStudio.Workload.Python ^ --includeRecommended ^ --lang ja-JP よく使う追加指定:
    • --includeOptional:オプションまで含めて取り込み。
    • --arch all:x64 と ARM64 の両方のバイナリを含める。
    • --config my.vsconfig:既存環境からエクスポートした構成をそのまま反映。
  3. 検証・修復
    レイアウトの欠落や破損をチェック:--verify
    問題があれば --fix で修復(要ネット接続)。
    vs_community.exe --layout C:\VSOffline --verify REM 修復 vs_community.exe --layout C:\VSOffline --fix
  4. 証明書の準備(必要時)
    レイアウト内の Certificates フォルダーに格納された証明書を、certutil や GUI からインポートします。スクリプトで行う場合の例: REM 管理者権限の cmd certutil -addstore -f "Root" "C:\VSOffline\Certificates\manifestRootCertificate.cer" certutil -addstore -f "Root" "C:\VSOffline\Certificates\manifestCounterSignRootCertificate.cer" certutil -addstore -f "Root" "C:\VSOffline\Certificates\vs_installer_opc.RootCertificate.cer"

オフライン PC でのセットアップ

レイアウト一式をオフライン PC にコピーし、以下のいずれかの方法で導入します。

  • コマンドラインで完全オフライン導入 C:\VSOffline\vs_community.exe ^ --noWeb ^ --add Microsoft.VisualStudio.Workload.Python ^ --includeRecommended ^ --passive --norestart
  • UI で導入:vs_community.exe を実行 → 表示されたインストーラーで「Python 開発」にチェック。レイアウトにない項目を選ぶとダウンロードを試みるため、選択は最小限に。

Python 実行環境とパッケージのオフライン準備

Python インタープリターの用意

  • Visual Studio の Python ワークロードは、Python 本体(CPython 等)を同梱しません。
    python.org 版のオフラインインストーラー、または Anaconda/Miniconda のオフラインインストーラーを併せて持ち込み、オフライン PC にインストールします。

pip パッケージの「ホイールハウス」(オフライン倉庫)を作る

オンライン PC で依存関係ごと事前ダウンロードし、オフライン PC で参照するのが確実です。

  1. 要件定義:社内で使うパッケージを requirements.txt に列挙。
  2. 事前ダウンロード(オンライン PC): py -m pip download -r requirements.txt -d C:\wheelhouse
  3. オフライン導入(オフライン PC): py -m pip install --no-index --find-links C:\wheelhouse -r requirements.txt
  4. ビルドが必要なパッケージ対策:事前に pip wheel でホイール化しておくと安定。
    py -m pip wheel --wheel-dir C:\wheelhouse -r requirements.txt

※ 異なるプラットフォーム向けに取得する場合(例:arm64 用など)は pip download の制約に注意してください(特定条件で --only-binary=:all: の指定が必要)。

運用のコツ:バージョン固定・更新元の制御・差分更新

response.json で初期設定と更新元を固定

レイアウトのルートに自動生成される response.json で、「既定インストール対象(ワークロード・言語)」「推奨コンポーネントの扱い」「更新元(channelUri)」などを定義できます。初期導入時に既定が、そのままクライアントに適用されます。

{
  "installChannelUri": ".\\ChannelManifest.json",
  "channelUri": "\\\\intranet\\share\\VS2022\\ChannelManifest.json",
  "installCatalogUri": ".\\Catalog.json",
  "channelId": "VisualStudio.17.Release",
  "includeRecommended": true,
  "addProductLang": ["ja-JP"],
  "add": ["Microsoft.VisualStudio.Workload.Python"]
}

ポイント:社内レイアウトを更新元にするなら channelUri を社内の ChannelManifest.json に向けます。

LTSC(長期サービス)やチャンネルの選択

安定運用が必要なら、LTSC チャンネル(例:VisualStudio.17.Release.LTSC.17.0)での固定も検討。--channelUri / --channelId を組み合わせて制御します。

差分更新(レイアウトのメンテナンス)

レイアウトは同じコマンドで再実行すれば差分更新できます。検証と修復の流れまで含めて 月例パッチ(Patch Tuesday)直後の更新 を習慣化しましょう。

REM 既存レイアウトを最新版へ差分更新
vs_community.exe --layout C:\VSOffline

REM 更新後の整合性チェック
vs_community.exe --layout C:\VSOffline --verify

よく使うコマンドとパラメータ早見表

目的コマンド例備考
レイアウト作成(日本語)vs_community.exe --layout C:\VSOffline --add Microsoft.VisualStudio.Workload.Python --lang ja-JP必要に応じ --includeRecommended --includeOptional。
完全オフライン導入vs_community.exe --noWeb --add Microsoft.VisualStudio.Workload.Pythonネットアクセスをブロックして導入。
レイアウト検証vs_community.exe --layout C:\VSOffline --verify欠落/破損の検出。
レイアウト修復vs_community.exe --layout C:\VSOffline --fixネット接続がある環境で実施。
構成ファイルを使うvs_community.exe --layout C:\VSOffline --config C:\my.vsconfigエクスポートした構成を流用。
多言語/言語指定--lang ja-JP / --addProductLang ja-JP対応ロケールは公式の一覧を参照。
ARM64 を含める--arch allx64 と ARM64 の両方のパッケージを取得。

トラブルシューティング

症状原因の例対処
「署名が無効」等で失敗オフラインで必要なルート/中間証明書が不足レイアウト内 Certificates をインポート(certutil スクリプト例を参照)。
インストーラーがネットに出ようとするレイアウトに含まれないコンポーネントを選択--noWeb を付与し、レイアウト作成時と同じワークロードのみに限定。
容量不足でレイアウト作成が止まる領域不足・長いパス40〜50 GB 以上を確保。パスは 80 文字未満を推奨。
Python が選べない/実行できないインタープリター未導入・パス未検出CPython/Anaconda を別途オフライン導入。Visual Studio の「Python 環境」で検出を確認。
パッケージ導入で依存関係が解決できないホイール未準備・プラットフォーム差異pip download / pip wheel でホイールハウスを整備し、--no-index --find-links を使用。

セキュリティ&監査(おすすめ手順)

  • ハッシュ検証:配布物の真正性確認に Get-FileHash または certutil -hashfile ... SHA256 を利用。記録を残す。
  • レイアウトは「読み取り専用共有」+配布用コピー:更新作業は別フォルダーで行い、検証後に切替。
  • 更新元を自社レイアウトに固定:response.json の channelUri を社内に向ける。

スクリプト例:一発で Python 環境まで導入

以下は、オフライン PC で「PTVS + CPython + pip パッケージ」をまとめてセットアップする例です(共有パスは実態に合わせて変更)。

@echo off
set LAYOUT=C:\VSOffline
set WHEELHOUSE=C:\wheelhouse
set PYTHON_EXE=C:\temp\python-3.12.7-amd64.exe

REM 1) 証明書(必要に応じて)
certutil -addstore -f "Root" "%LAYOUT%\Certificates\manifestRootCertificate.cer"

REM 2) PTVS を完全オフラインで導入
"%LAYOUT%\vs_community.exe" --noWeb --passive --norestart ^
--add Microsoft.VisualStudio.Workload.Python --includeRecommended

REM 3) CPython をサイレント導入(全ユーザー/PATH 追加)
"%PYTHON_EXE%" /quiet InstallAllUsers=1 PrependPath=1 Include_launcher=0

REM 4) pip パッケージをホイールハウスから導入
py -m pip install --no-index --find-links "%WHEELHOUSE%" -r "%WHEELHOUSE%\requirements.txt"

FAQ

Q. vs_installer.exe と vs_community.exe の違いは?
A. vs_installer.exe(または setup.exe)はクライアント側のインストーラー本体で、レイアウト作成はできません。レイアウト作成・更新は ブートストラッパー(vs_*.exe) の --layout で行います。 Visual Studio:Use command-line parameters(コマンドライン パラメーター) Visual Studio:Workload and component IDs(ワークロード ID 一覧:Python) Visual Studio:Install certificates for offline installation(証明書インストール) Visual Studio:Configure installation defaults with response file(response.json) pip:pip download / pip install / pip wheel(オフライン導入)


チェックリスト(社内持ち込み前の最終確認)

  • ブートストラッパー(vs_*.exe)を最新版に更新した
  • --layout で Python ワークロード(Microsoft.VisualStudio.Workload.Python)を含めた
  • --lang ja-JP/必要言語を含めた
  • --arch all(必要時)で x64/ARM64 両方に対応した
  • --verify でレイアウト整合性チェックを通した/必要なら --fix
  • SHA-256 ハッシュを採取・保管し、AV/EDR スキャンを通した
  • response.json に channelUri を設定し更新元を社内に固定した
  • Python 本体(CPython/Anaconda)を持ち込んだ
  • pip のホイールハウス(requirements.txt+wheelhouse)を用意した

補足:サンプル vsconfig(Python 開発のみ・日本語)

{
  "version": "1.0",
  "components": [
    "Microsoft.VisualStudio.Workload.Python"
  ],
  "visualStudioEdition": "2022",
  "productKey": ""
}

このファイルをエクスポート/配布しておけば、--config で同一構成の再現が容易になります(レイアウト作成時にも使用可)。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次