1. ホーム
  2. Python

python3 failed to start Fatal Python error: initfsencoding: unable to load file system codec

2022-02-14 19:21:17

python2とpython3が共存し、どちらかが起動に失敗した場合、以下の2つのエラーが報告されます。

1. python3 の起動に失敗し、python2 のパスにあるファイルがエラーを報告する。

Fatal Python error: initfsencoding: unable to load file system codec
  ファイル "C:\Python27Lib__encodings__init__.py", 行 123
    raise CodecRegistryError,\ \
                            ^
SyntaxError: 構文が無効です。

現在のスレッド 0x000004dc (最新の呼び出しが最初)。

2. python2 の起動に失敗、python3 のパスファイルエラー

ファイル "E:\Python37Libsite.py" 行 177
    file=sys.stderr)
        ^
SyntaxError: 構文が無効です。

    原因は環境変数PYTHONPATHが設定されていることです。PYTHONPATHはPythonの検索パスで、デフォルトではインポートするモジュールはPYTHONPATHから検索されますが、環境変数にあるバージョンのモジュールパスが設定されているため、別のバージョンの起動時にモジュール読み込みパスが間違ってしまい、起動失敗の原因となっています。これはオンラインチュートリアルの通りにpythonをインストールした場合の落とし穴で、実はこの変数は省いても良い、カスタムモジュールがpythonのインストールパス下に無くなったら環境変数を設定する必要があるので、この環境変数を削除するか、C:³³³³³を削除すれば良いのです。

削除後の完全な解決策