WindowsでPython2/3の共存が壊れたらPYTHONHOMEを削除する
Windowsではpy
とpy -2
でPython2/3の共存ができますが、再インストールやマイナーバージョンのアップグレードなどで以下のように壊れることがあります。
>py Fatal Python error: Py_Initialize: unable to load the file system codec File "C:\python27\lib\encodings\__init__.py", line 123 raise CodecRegistryError,\ ^ SyntaxError: invalid syntax Current thread 0x00000e1c (most recent call first):
>py -2 File "C:\Python36\lib\site.py", line 177 file=sys.stderr) ^ SyntaxError: invalid syntax
これらは環境変数のPYTHONHOME
を削除すると直りました。このPYTHONHOME
はPython2/3の両方から参照されるらしく、削除するとそれぞれのデフォルト値が使われうまく動くようになるようです。
もしPythonをデフォルトのパス以外にインストールしている場合、さらに何らかのケアが必要かもしれません。