VS Code の更新エラーと Python 文字化けの対処|権限と UTF-8 設定

  • URLをコピーしました!
目次

はじめに

Visual Studio Code(VS Code)は、Windows・macOS・Linux に対応した広く利用されているコードエディタです。一方で、Windows 環境で使い続けていると、特有のエラーや表示の問題に遭遇する場面があります。

本記事では、相談の多い次の 2 つのトラブルについて、原因の切り分けと対処法を整理します。

更新時のエラー:
VS Code 起動時に「アクセスが拒否されました」「Please verify there are no Visual Studio Code processes still executing」というポップアップが繰り返し表示される。

文字化け:
Python などの実行結果(日本語)が VS Code のターミナルで正しく表示されない。

いずれも一度発生すると解消に時間がかかりやすい問題ですが、原因を切り分ければ対処の見通しは立てやすくなります。

この記事でわかること
  • VS Code 更新エラーのメッセージ別の原因切り分け
  • 即効性のある対処(プロセス終了・管理者起動・拡張干渉の解消)
  • フォルダ権限の付与による根本対処(GUI と icacls の両方)
  • update.mode 設定による自動更新の挙動制御(4 つの選択肢)
  • Python の文字化けを PYTHONIOENCODING または PYTHONUTF8 で解消する方法
  • Python 3.15 以降の UTF-8 モードデフォルト化に向けた見通し

更新エラーはプロセス残存や権限不足など複数の原因が重なって起きるため、まずプロセス終了と管理者起動を試し、再発する場合はフォルダ権限の付与で根本対処します。文字化けは OS 全体の設定を変えず、Python 側の環境変数で UTF-8 に固定する方法が扱いやすい選択です。VS Code をインフラ作業全体で活用する全体像は、関連記事『インフラエンジニアのための VS Code 活用|導入とサーバー管理』をご参照ください。

トラブル①: 更新時に「アクセスが拒否されました」が出る

VS Code を起動した直後や使用中に、次のようなエラーポップアップが繰り返し表示されることがあります。

症状(エラーメッセージ)

代表的なメッセージは次のいずれか、または類似のものです。

There was an error while Deleting a directory:
"C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\unins000.exe"
コピー先のフォルダーにファイルを作成中にエラーが発生しました:
アクセスが拒否されました。

Please verify there are no Visual Studio Code processes still executing.

「インストールをキャンセル」を押しても、次回の起動時や自動更新のタイミングで再び同じエラーが表示されるケースが多く見られます。

主な原因(複数の可能性)

このエラーは、自動更新の処理が VS Code のインストールフォルダにファイルを書き込もうとした際に失敗している状態です。失敗の理由は 1 つに限らず、次のいずれかが該当することが多いとされています。

原因概要
① VS Code プロセスの残存バックグラウンドで Code.exe が動作し、ファイルがロックされている
② フォルダの書き込み権限不足ユーザー権限でインストールフォルダへの書き込みが許可されていない
③ エクスプローラー拡張の干渉「Open with Code」拡張が dllhost.exe を通じてファイルをロックしている
④ アンチウイルスソフトの干渉リアルタイム保護が更新ファイルへのアクセスを一時的にブロックしている
⑤ User Installer と System Installer の混在2 種類のインストーラーが同時にインストールされている

参考: Microsoft VS Code GitHub Issue #128266
“Please verify there are no Visual Studio Code processes still executing”
(実行中の Visual Studio Code プロセスがないことを確認してください)
https://github.com/microsoft/vscode/issues/128266

即効性のある対処(まず試したい手順)

根本対処に入る前に、次の手順を順番に試すことで解消するケースが多くあります。

STEP
VS Code 関連プロセスを完全終了する

タスクマネージャー(Ctrl + Shift + Esc)を開き、Code.exeVisual Studio Code・(拡張干渉が疑われる場合は)dllhost.exe を終了します。その後、VS Code を再起動して更新が正常に完了するかを確認します。

STEP
管理者権限で起動して更新を完了させる

VS Code のショートカットを右クリックし、「管理者として実行」を選びます。一時的に権限を引き上げた状態で更新が完了すれば、次回以降は通常起動でも問題が出にくくなります。

STEP
アンチウイルスソフトを一時的に除外する

リアルタイム保護を一時停止するか、VS Code のインストールフォルダを除外設定に追加すると解消することがあります。設定変更後は、セキュリティ維持のため除外を最小限にとどめることをおすすめします。

これらで解消しない場合は、次の根本対処を検討します。

対策 A(推奨): フォルダに変更権限を付与する

更新時の権限不足が原因の場合、VS Code のインストールフォルダに変更権限を付与することで解消が期待できます。インストーラーの種類によってパスが異なるため、まずどちらでインストールしたかを確認します。

インストーラー種別インストール先必要な権限
User Installer(既定・推奨)C:\Users\<ユーザー名>\AppData\Local\Programs\Microsoft VS Codeユーザー権限のみ
System InstallerC:\Program Files\Microsoft VS Code管理者権限が必要

インストーラーの種類とインストール先は、公式 FAQ で確認できます(https://code.visualstudio.com/docs/supporting/FAQ

手順(GUI)
  1. User Installer 利用時は C:\Users\%USERNAME%\AppData\Local\Programs\ へ移動します(%USERNAME% は自身のユーザー名に読み替えます。エクスプローラーのアドレスバーに貼り付けると自動展開されます)
  2. 「Microsoft VS Code」フォルダを右クリックし、「プロパティ」を選びます。
  3. 「セキュリティ」タブで「編集」をクリックし、「Users」(または自身のユーザー名)を選択して、「変更」の「許可」にチェックを入れ、「OK」で閉じます。

これで権限が付与され、自動更新時のエラー回避につながります。System Installer の場合は、上記操作を管理者権限で行う必要があります。

手順(icacls)

GUI 操作が制限される環境では、icacls で同じ権限付与を行えます。コマンドプロンプトで次を実行します(括弧の扱いの違いから、PowerShell ではなくコマンドプロンプトでの実行をおすすめします)。

icacls "C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code" /grant "%USERNAME%:(OI)(CI)M" /t

(OI)(CI) はフォルダ内のファイル・サブフォルダへ権限を継承させる指定、M は変更(Modify)権限、/t は配下すべてに再帰適用する指定です。System Installer(C:\Program Files\Microsoft VS Code)の場合は、管理者として実行したコマンドプロンプトで同様に実行します。

なお、icacls で権限を絞り込む例は、秘密鍵の権限エラーを扱う関連記事『VS Code Remote-SSH でサーバーに接続する手順』でも紹介しています。

対策 B(回避策): 自動更新の挙動を制御する

権限変更が制限された環境(会社支給 PC など)では、自動更新の挙動を変更することで、エラーの発生自体を抑えられます。update.mode 設定では次の 4 つの値から選べます。

挙動
default(既定)バックグラウンドで自動的に更新を確認・適用
manual自動更新は行わず、「ヘルプ > 更新の確認」を実行したときだけ確認
start起動時のみ更新を確認、バックグラウンド更新は行わない
none自動更新を完全に無効化

設定 UI からは、次の手順で変更できます。

  1. Ctrl + ,(カンマ)で設定を開きます。
  2. 検索ボックスに update mode と入力します。
  3. 設定項目を default から manual または none に変更します。
  4. 再起動を促されたら VS Code を再起動します。

settings.json で設定する場合は、update.mode を記述します。

{
  "update.mode": "manual"
}

none に設定すると、以後 VS Code は自動更新されません。セキュリティ維持の観点からは、manual または start を選び、定期的に手動で更新確認を行う運用をおすすめします。

トラブル②: Python の実行結果が文字化けする

Windows 版の VS Code で Python を実行した際、ターミナル出力の日本語が正しく表示されない問題は、初学者だけでなく実務でも遭遇しやすい問題です。

症状

次のような単純なコードを実行した際、出力の日本語部分が読めない文字列に変換されます。

print("こんにちは")

出力結果(文字化けの例):

縺ォ縺。縺

原因

Windows のコマンドプロンプトや既定のターミナルは CP932(Shift-JIS の Microsoft 拡張)で動作する一方、Python(VS Code)は UTF-8 で文字を出力する場面があります。出力側と表示側で文字コードが一致しないことが、この文字化けの原因です。

なお、PowerShell や Windows Terminal、VS Code 統合ターミナルなど、利用するターミナルによって挙動が異なる場合もあります。

対策(推奨): 環境変数で Python の出力を UTF-8 に固定する

Web 上には「Windows の設定で『ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用』にチェックを入れる」という対処も紹介されていますが、これはおすすめしません。OS 全体の文字コードが変わることで、古い業務アプリや一部の VPN クライアントなどが起動しなくなる副作用が報告されているためです。

代わりに、Python の動作だけを UTF-8 に固定する環境変数 PYTHONIOENCODING を設定する方法をおすすめします。他のアプリへの影響を抑えながら、Python の出力エンコーディングを固定できます。

設定手順は次のとおりです。

  1. Windows のスタートメニュー(検索)に env または「環境変数」と入力し、「システム環境変数の編集」を開きます。
  2. 「環境変数」ボタンをクリックし、「(ユーザー名)のユーザー環境変数」の「新規」をクリックします。
  3. 変数名に PYTHONIOENCODING、変数値に utf-8 を入力し、「OK」をクリックします。
  4. 設定を反映させるため、VS Code を完全に終了してから再起動します。

設定の反映確認

VS Code の統合ターミナルで次のコマンドを実行し、utf-8 が返ってくることを確認します。

PowerShell の場合:

echo $env:PYTHONIOENCODING

コマンドプロンプトの場合:

echo %PYTHONIOENCODING%

その後、再度 Python のコードを実行すると、文字化けが解消されているかを確認できます。

PYTHONIOENCODING と PYTHONUTF8 の違い

PYTHONIOENCODING は標準入出力(stdin/stdout/stderr)のエンコーディングのみを制御する環境変数です。一方、Python 3.7 以降では UTF-8 モードを有効化する PYTHONUTF8 という、より広範囲な環境変数が用意されています。両者の主な違いは影響範囲です。

環境変数影響範囲推奨度
PYTHONIOENCODING=utf-8標準入出力のみ UTF-8 化文字化けの解消が目的なら扱いやすい
PYTHONUTF8=1標準入出力+ファイル I/O+ロケール解釈すべて UTF-8 化プロジェクト全体で UTF-8 を統一したい場合に有効

PYTHONUTF8 を使う場合は、システム環境変数で変数名 PYTHONUTF8、変数値 1 を追加します。設定後は、open() などのファイル I/O も含めて UTF-8 で動作します。

参考: Python 公式ドキュメント(Python UTF-8 Mode)
“If set to 1, enable the Python UTF-8 Mode”
(1 を設定すると、Python の UTF-8 モードが有効になります)
https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8

ファイルの読み書きで encoding='utf-8' を明示していないコードを扱う場合は、PYTHONUTF8=1 のほうが副作用の少ない動作になることが多くあります。一方、ターミナル出力の文字化けだけを直したい場合は、影響範囲の限定された PYTHONIOENCODING のほうが扱いやすい選択肢です。

文字化け対策の選択肢を比較する

文字化けへの対処法は環境変数以外にもあります。それぞれ影響範囲と副作用が異なるため、用途に応じた使い分けをおすすめします。

対策影響範囲副作用推奨度
PYTHONIOENCODING=utf-8(環境変数)当該ユーザーの Python 標準入出力ほぼなし
PYTHONUTF8=1(環境変数)当該ユーザーの Python 全体(I/O 含む)Shift-JIS 前提のファイル読み書きがあると影響する可能性
chcp 65001(コマンド)現在のターミナルセッションのみセッションを閉じると無効化される△(一時対処向け)
Windows OS の UTF-8 設定(ベータ)OS 全体一部業務アプリ・VPN クライアントが起動しなくなる事例あり✕(非推奨)
# –– coding: utf-8 –-(ソースコード宣言)ソースファイルのエンコーディング解釈のみ出力時の文字化けには無効─(用途違い)

実務では、ターミナル出力の文字化け解消が目的なら PYTHONIOENCODING=utf-8、プロジェクト全体で UTF-8 を統一したいなら PYTHONUTF8=1、という使い分けが扱いやすい構成です。

なお、# -*- coding: utf-8 -*- という宣言は「ソースコード自体のエンコーディング」を Python に伝えるものであり、出力時の文字化け対策にはなりません。用途を区別することをおすすめします。

Python 3.15 以降の将来見通し(PEP 686)

Python 3.15 以降では、UTF-8 モードがデフォルトで有効化されることが PEP 686 で確定しています。これにより、Windows 環境でも追加設定なしに UTF-8 で動作するようになる見込みです。Python 3.15 は 2026 年 6 月時点でベータ(機能フリーズ済み)の段階にあり、正式リリースは 2026 年 10 月が予定されています。

参考: PEP 686 – Make UTF-8 mode default
“Python will enable UTF-8 mode by default from Python 3.15”
(Python 3.15 から UTF-8 モードがデフォルトで有効化されます)
https://peps.python.org/pep-0686/

ただし、Python 3.14 以前を利用している環境では、従来どおり PYTHONIOENCODINGPYTHONUTF8 での明示的な設定が必要です。本記事執筆時点の安定版である Python 3.14 系では、引き続き本記事で紹介した手順での対応が有効です。

長期的には Python のバージョンアップとともに自然に解消される問題ですが、レガシー環境や複数バージョンの Python を併用する環境では、当面は環境変数による明示的な対処を続ける構成が現実的です。

まとめ

本記事では、Windows 版 VS Code で起きやすい「更新エラー」と「Python 文字化け」について、原因の切り分けと対処を整理しました。更新エラーは複数の原因が重なって起きるため、即効対処を試したうえで、再発する場合はフォルダ権限の付与で根本対処します。文字化けは OS 全体ではなく Python 側の環境変数で UTF-8 に固定する方法が扱いやすい選択です。

  • 更新エラーは権限不足だけでなくプロセス残存や拡張干渉も原因
  • 即効対処は Code.exe の完全終了と管理者権限での起動
  • 根本対処はインストールフォルダへの変更権限の付与(GUI または icacls)
  • 自動更新を抑えたい場合は update.mode を manual または none に変更
  • Python 文字化けは PYTHONIOENCODING または PYTHONUTF8 で対処
  • OS 全体の UTF-8 設定は副作用があるため非推奨
  • Python 3.15 以降は UTF-8 モードがデフォルト化される見込み

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次