I was coming across some errors when installing Anaconda, Miniconda specifically.
https://conda.io/miniconda.html
I think part of the reason is I have quite a few installs of Python due to OSGeo4W.
My error:
Fatal Python error: Py_Initialize: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x00002554 (most recent call first):
The solution:
Update the activate.bat file that is called when launching from the start menu. For me located in:
C:\ProgramData\Anaconda\Scripts
We need to add in the following to clear out and reset the python environment before launching anaconda:
@SET PYTHONPATH= @SET PYTHONHOME=C:\ProgramData\Anaconda @PATH C:\ProgramData\Anaconda;C:\ProgramData\Anaconda\Scripts;%PATH%
So, editing the file from:
@REM Test first character and last character of %1 to see if first character is a " @REM but the last character isn't. @REM This was a bug as described in https://github.com/ContinuumIO/menuinst/issues/60 @REM When Anaconda Prompt has the form @REM %windir%\system32\cmd.exe "/K" "C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3" @REM Rather than the correct @REM %windir%\system32\cmd.exe /K ""C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3"" @REM this solution taken from https://stackoverflow.com/a/31359867 @set "_args1=%1" @set _args1_first=%_args1:~0,1% @set _args1_last=%_args1:~-1% @set _args1_first=%_args1_first:"=+% @set _args1_last=%_args1_last:"=+% @set _args1= @if "%_args1_first%"=="+" if NOT "%_args1_last%"=="+" ( @CALL "%~dp0..\Library\bin\conda.bat" activate @GOTO :End ) @CALL "%~dp0..\Library\bin\conda.bat" activate %* :End @set _args1_first= @set _args1_last=
To:
@REM Test first character and last character of %1 to see if first character is a " @REM but the last character isn't. @REM This was a bug as described in https://github.com/ContinuumIO/menuinst/issues/60 @REM When Anaconda Prompt has the form @REM %windir%\system32\cmd.exe "/K" "C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3" @REM Rather than the correct @REM %windir%\system32\cmd.exe /K ""C:\Users\builder\Miniconda3\Scripts\activate.bat" "C:\Users\builder\Miniconda3"" @REM this solution taken from https://stackoverflow.com/a/31359867 @set "_args1=%1" @set _args1_first=%_args1:~0,1% @set _args1_last=%_args1:~-1% @set _args1_first=%_args1_first:"=+% @set _args1_last=%_args1_last:"=+% @set _args1= @SET PYTHONPATH= @SET PYTHONHOME=C:\ProgramData\Anaconda @PATH C:\ProgramData\Anaconda;C:\ProgramData\Anaconda\Scripts;%PATH% @if "%_args1_first%"=="+" if NOT "%_args1_last%"=="+" ( @CALL "%~dp0..\Library\bin\conda.bat" activate @GOTO :End ) @CALL "%~dp0..\Library\bin\conda.bat" activate %* :End @set _args1_first= @set _args1_last=
Updating the paths as required.
This just clears out the python and windows environmental variables before launching, similar to what OSGeo4W does.