安装Anaconda 2后出现错误:致命的Python错误:Py_Initialize:无法加载文件系统编解码器

时间:2018-08-28 20:47:13

标签: python-2.7 anaconda python-3.6 fatal-error multiple-versions

当尝试从终端在python中运行程序时,出现以下错误:

 var leftOuterJoin = from table1 in mms_dt.AsEnumerable()
                     join table2 in flash_dt.AsEnumerable()
                     on new { X1 = (Decimal)table1["store_number"], X2 = (Decimal)table1["dept"] } equals new { X1 = Convert.ToDecimal(table2["store_number"]), X2 = Convert.ToDecimal(table2["dept"]) }
                     select new
                     {
                         Store = (Decimal)table1["store_number"],
                         Dept = Convert.ToDecimal(table1["dept"]),
                         WinDSS = (Decimal)table1["WinDSS"],
                         CORE = (Decimal)table1["CORE"],
                         RIM = (Decimal)table1["RIM"],
                         POS = (Decimal)table1["WinDSS"] + (Decimal)table1["CORE"],
                         Flash = Convert.ToDecimal(table2["sales_collected"]),
                         Difference = ((Decimal)table1["WinDSS"] + (Decimal)table1["CORE"]) - Convert.ToDecimal(table2["sales_collected"]),
                         Variance = (float)SafeDivision((((Decimal)table1["WinDSS"] + (Decimal)table1["CORE"]) - Convert.ToDecimal(table2["sales_collected"])), Convert.ToDecimal(table2["sales_collected"]))
                     }
                     into selection
                     orderby selection.Store, selection.Dept
                     select selection;

var rightOuterJoin = from table2 in flash_dt.AsEnumerable()
                     join table1 in mms_dt.AsEnumerable()
                     on new { X1 = Convert.ToDecimal(table2["store_number"]), X2 = Convert.ToDecimal(table2["dept"]) } equals new { X1 = Convert.ToDecimal(table1["store_number"]), X2 = Convert.ToDecimal(table1["dept"]) }
                     select new
                     {
                         Store = Convert.ToDecimal(table2["store_number"]),
                         Dept = Convert.ToDecimal(table2["dept"]),
                         WinDSS = (Decimal)table1["WinDSS"],
                         CORE = (Decimal)table1["CORE"],
                         RIM = (Decimal)table1["RIM"],
                         POS = (Decimal)table1["WinDSS"] + (Decimal)table1["CORE"],
                         Flash = Convert.ToDecimal(table2["sales_collected"]),
                         Difference = ((Decimal)table1["WinDSS"] + (Decimal)table1["CORE"]) - Convert.ToDecimal(table2["sales_collected"]),
                         Variance = (float)SafeDivision((((Decimal)table1["WinDSS"] + (Decimal)table1["CORE"]) - Convert.ToDecimal(table2["sales_collected"])), Convert.ToDecimal(table2["sales_collected"]))
                     }
                     into selection
                     orderby selection.Store, selection.Dept
                     select selection;

var res = leftOuterJoin.Union(rightOuterJoin);

foreach (var item in res)
{
    Console.WriteLine(item);
}

我当前正在运行Python 3.6.4 :: Anaconda自定义(64位),并且认为此问题可能与还安装了Anaconda 2有关。有人可以帮我弄清楚原因是什么,我该如何解决?

我也想了解更多有关如何同时使用Anaconda 2和Anaconda 3的技巧,以免再次发生这种情况。

1 个答案:

答案 0 :(得分:0)

在解决了一些麻烦之后,好像重新安装了anaconda(从网络上的3.6版本选择)后,会碰到一些电线。

对于其他人...

1)使用原始的部分并创建一个python3环境。为此,请将您的.bash_profile更改为仅包含 export PATH="/Users/<username>/anaconda2/bin:$PATH 并可能删除或移动 /Users/<username>/anaconda3 目录重新命名。然后使用获取并使用Python 3.6的原始anaconda(带有python版本2)创建一个新环境:

conda create -n mypython3environment python=3.6 其中“ mypython3environment”是您使用python 3.6时想要的一些名称 然后在项目中使用它-转到项目的目录并键入:

source activate mypython3environment

2)进行全新安装。另一个选择是从.bash_profile中剪切anaconda内容,删除或移动anaconda2 /和anaconda3目录以及.bash_profile.pysave文件,然后尝试从anaconda网页重新安装。

总体-您需要安装anaconda一次-然后使用conda createsource activate <environment name>来选择使用的Python版本(无论是Python 2还是3)来分别使用然后使用环境。

请参见Anaconda's Managing Environmentscheatsheet