はじめに
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 更新エラーのエラーメッセージ別の原因切り分け
- 即効性のある対処(プロセス終了・管理者起動・拡張干渉の解消)
- フォルダ権限変更による根本対処の手順
update.mode設定による自動更新の挙動制御(4 つの選択肢)- Python の文字化けを
PYTHONIOENCODINGまたはPYTHONUTF8で解消する方法 - Python 3.15 以降の UTF-8 モードデフォルト化に向けた将来見通し
トラブル①: 更新時に「アクセスが拒否されました」が出る
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 のインストールフォルダにファイルを書き込もうとした際に失敗している状態です。失敗の理由は一つに限らず、以下のいずれかが該当することが多いとされています。
| 原因 | 概要 |
|---|---|
| ① VS Code プロセスの残存 | バックグラウンドで Code.exe が動いており、ファイルがロックされている |
| ② フォルダの書き込み権限不足 | ユーザー権限でインストールフォルダへの書き込みが許可されていない |
| ③ エクスプローラ拡張の干渉 | 「Open with Code」拡張が dllhost.exe を通じてファイルをロックしている |
| ④ アンチウイルスソフトの干渉 | リアルタイム保護が更新ファイルへのアクセスを一時的にブロックしている |
| ⑤ User Installer と System Installer の混在 | 2 種類のインストーラが同時にインストールされている |
参考: Microsoft VS Code GitHub Issue #128266
“There was an error while attempting to kill any running Code.exe processes: Failed to open process: Access is denied. Please verify there are no Visual Studio Code processes still executing.”
(実行中の Code.exe プロセスを終了しようとした際にエラーが発生しました: プロセスを開けませんでした。アクセスが拒否されました)
https://github.com/microsoft/vscode/issues/128266
即効性のある対処(まず試したい手順)
根本対処に入る前に、以下の手順を順番に試すことで解消するケースが多くあります。
タスクマネージャー(Ctrl + Shift + Esc)を開き、以下のプロセスをすべて終了します。
Code.exeVisual Studio Codedllhost.exe(エクスプローラ拡張干渉の疑いがある場合)
その後、VS Code を再起動して更新が正常完了するか確認します。
VS Code のショートカットを右クリックし、「管理者として実行」を選択します。一時的に権限を引き上げた状態で更新が完了すれば、次回以降は通常起動でも問題が出にくくなります。
リアルタイム保護を一時的に停止する、もしくは VS Code のインストールフォルダを除外設定に追加することで解消することがあります。設定変更後は、セキュリティ維持のため除外設定を最小限にとどめることをおすすめします。
これらの即効対処で解消しない場合は、以下の根本対処を検討します。
対策 A(推奨): フォルダに変更権限を付与する
更新時の権限不足が原因の場合、VS Code のインストールフォルダに対して書き込み権限を付与することで解消することが期待できます。
前提: インストーラの種類によってパスが異なる
VS Code には User Installer と System Installer の 2 種類があり、それぞれインストール先が異なります。本対処を行う前に、どちらでインストールしたかを確認することをおすすめします。
| インストーラ種別 | インストール先 | 必要な権限 |
|---|---|---|
| User Installer(既定・推奨) | C:\Users\<ユーザー名>\AppData\Local\Programs\Microsoft VS Code | ユーザー権限のみ |
| System Installer | C:\Program Files\Microsoft VS Code | 管理者権限が必要 |
参考: Visual Studio Code FAQ — Installation
https://code.visualstudio.com/docs/supporting/FAQ
User Installer の場合は通常、書き込み権限の問題は発生しにくい構成ですが、グループポリシーや既存ファイルの権限が引き継がれている環境では今回のエラーが発生することがあります。
手順
User Installer 利用時は以下のパスへ移動します。
C:\Users\%USERNAME%\AppData\Local\Programs\%USERNAME% は自身のユーザー名に読み替えてください。エクスプローラのアドレスバーに上記の文字列を貼り付けると、自動的に展開されます。
Microsoft VS Code フォルダを右クリックし、「プロパティ」を選択します。
「セキュリティ」タブを開き、以下の操作を行います。
- 「編集」ボタンをクリック
- 「グループ名またはユーザー名」から 「Users」(または自身のユーザー名)を選択
- 下部の「アクセス許可」欄で、「変更」の「許可」にチェックを入れる
- 「OK」をクリックして閉じる
これで権限が付与され、自動更新時のエラー回避につながります。System Installer を利用している場合は、上記操作を管理者権限で実行する必要があります。
対策 B(回避策): 自動更新の挙動を制御する
権限変更が制限された環境(会社支給 PC など)では、VS Code 側の自動更新の挙動を変更することで、エラーの発生自体を抑えられます。
VS Code の update.mode 設定では、以下の 4 つの値から選択できます。
| 値 | 挙動 |
|---|---|
default(既定) | バックグラウンドで自動的に更新を確認・適用 |
manual | 自動更新は行わず、手動で「ヘルプ > 更新の確認」を実行した時だけ確認 |
start | VS Code 起動時のみ更新を確認、バックグラウンド更新は行わない |
none | 自動更新を完全に無効化 |
参考: Visual Studio Code Enterprise — Manage updates
“To allow users to check for updates manually while disabling automatic background checks, set the UpdateMode policy to manual”
(バックグラウンドの自動確認を無効化しつつ手動更新を許可する場合は、UpdateMode を manual に設定します)
https://code.visualstudio.com/docs/enterprise/updates
設定 UI からの変更手順
- VS Code を起動し、
Ctrl + ,(カンマ)で設定を開く - 検索ボックスに
update modeと入力 - 設定項目を
defaultからmanualまたはnoneに変更 - 再起動を促されたら VS Code を再起動
完全停止ではなく更新タイミングを自分で管理したい場合は、manual を選ぶとセキュリティ更新の取りこぼしを抑えやすくなります。
settings.json で設定する場合
Ctrl + Shift + P でコマンドパレットを開き、「基本設定: 設定 (JSON) を開く」を選択して、以下を追記する方法もあります。
{
"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 の出力エンコーディングを固定できます。
設定手順
Windows のスタートメニュー(検索)に env または「環境変数」と入力し、「システム環境変数の編集」を開きます。
ウィンドウ右下の「環境変数(N)…」ボタンをクリックします。画面上部の「(ユーザー名) のユーザー環境変数」にある「新規(N)…」をクリックします。
- 変数名:
PYTHONIOENCODING - 変数値:
utf-8
以下の通り入力し、「OK」をクリックします。
設定を反映させるため、VS Code を完全に終了してから再起動します。
設定の反映確認
VS Code の統合ターミナルで以下のコマンドを実行し、utf-8 が返ってくることを確認します。
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 を使う場合の設定例
設定方法は PYTHONIOENCODING と同じく、システム環境変数で以下を追加します。
- 変数名:
PYTHONUTF8 - 変数値:
1
設定後、Python コードを実行すると、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 で動作するようになる見込みです。
参考: PEP 686 – Make UTF-8 mode default
“Python will enable UTF-8 mode by default from Python 3.15. Users can still disable UTF-8 mode by setting PYTHONUTF8=0 or -X utf8=0.”
(Python 3.15 から UTF-8 モードがデフォルトで有効化されます。ユーザーは PYTHONUTF8=0 または -X utf8=0 の指定で UTF-8 モードを無効化できます)
https://peps.python.org/pep-0686/
ただし、Python 3.14 以前を利用している環境では従来通り PYTHONIOENCODING や PYTHONUTF8 での明示的な設定が必要です。本記事執筆時点の安定版(Python 3.14 系)では、引き続き本記事で紹介した手順での対応が有効です。
長期的には Python のバージョンアップとともに自然に解消される問題ですが、レガシー環境や複数バージョンの Python を併用する環境では、当面は環境変数による明示的な対処を続ける構成が現実的です。
まとめ
本記事では、Windows 版 VS Code でよくある「更新エラー」と「Python 文字化け」について、原因の切り分けと対処法を整理しました。
- 更新エラーは権限不足だけでなく、プロセス残存・拡張干渉・アンチウイルス・Installer 混在など複数の原因が考えられる。
- 即効対処として、まず
Code.exeプロセスの完全終了と管理者権限での起動を試すと解消するケースが多い。 - 根本対処は、インストールフォルダ(User/System で異なる)への書き込み権限付与
- 自動更新を停止したい場合は、
update.modeをmanualまたはnoneに変更する(manual推奨) - Python の文字化けは、OS 設定変更ではなく
PYTHONIOENCODING=utf-8またはPYTHONUTF8=1の環境変数で対処するのが安全 - Python 3.15 以降は UTF-8 モードがデフォルト化されるため、長期的にはこの問題は解消される見込み
以上、最後までお読みいただきありがとうございました。


