python-2.7anacondapython-3.6fatal-errormultiple-versions

Error after installing Anaconda 2: Fatal Python error: Py_Initialize: unable to load the file system codec


When trying to run a program in python from the terminal I get the following error:

Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding

Current thread 0x00007fffb68a93c0 (most recent call first):
Abort trap: 6

I am currently running Python 3.6.4 :: Anaconda custom (64-bit) and think this problem may have to do with also having Anaconda 2 installed. Could someone help me figure out what the cause is and how I can remedy this?

I'd also be interested in knowing more tips about how to use Anaconda 2 and 3 concurrently so that this doesn't happen again.


Solution

  • After some trouble shooting w/ you, it looks like reinstalling anaconda (from the version 3.6 choice on the web) crossed some wires.

    For others either...

    1) Use your original installment and make a python3 environment. To do this change your .bash_profile to only include export PATH="/Users/<username>/anaconda2/bin:$PATH and perhaps remove or move the /Users/<username>/anaconda3 directory to a new name. Then make a new environment using the original anaconda(with python version 2) that fetches and uses Python 3.6:

    conda create -n mypython3environment python=3.6 where "mypython3environment" is some name you want when you use python 3.6 then to use it in your project - go to your project's directory and type:

    source activate mypython3environment

    2) Do a clean install. The other option is to cut out the anaconda stuff from your .bash_profile, remove or move the anaconda2/ and anaconda3 directories and the .bash_profile.pysave file and try to reinstall from the anaconda webpage.

    Overall - you need to install anaconda once - then use conda create and source activate <environment name> to make then use environments, respectively, with your Python version of choice, whether it is a Python 2 or 3 version.

    See Anaconda's Managing Environments and the cheatsheet