14.04 – 致命Python错误:Py_Initialize:无法获取语言环境编码…语法错误:无效语法已中止(核心转储)
作者:互联网
我通过运行安装了anaconda
bash Anaconda-2.2.0-Linux-x86_64.sh
命令在我的Ubuntu 14.04系统上安装成功,之后我被要求导出我的新/ home / username / anaconda / bin $PATH环境变量.
在这样做的时候,我能够使用所有anaconda的功能,包括IDE,以及成功使用所有基于conda的命令.
下次启动我的系统时,每个错误输入的命令都会看到一个
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/local/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
错误. (除了python之外的所有命令都是特定的)
关注一些stackexchange和askubuntu帖子,并注意到我的$PYTHONPATH已设置为usr / local / lib / python2.7,我试图
export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7
但它没有帮助.
这让我经历了整个包删除和重新安装的传奇,当然还有很多更新和升级,我自己尝试解决问题.
conda info -a返回:
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
PYTHONHOME: <not set>
PYTHONPATH: /usr/local/lib/python2.7:/home/username/anaconda/bin/python
命令
which python
回报
/home/username/anaconda/bin/python
和
echo "$PATH"
回报
/home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
我知道这与我设置路径变量的方式有关,特别是在〜/ .bashrc中,Anaconda自动将我的/ home / username / anaconda / bin文件夹添加到$PATH变量(这在第二次安装时发生我先取下它后的Python).
我没有在〜/ .profile或〜/ .bashrc中修改任何其他环境变量.
在重新启动之前,我将导出$PYTHONPATH行添加到〜/ .bashrc中.
所有Anaconda的功能现在都可以工作,尽管同样的Fatal Python错误:Py_Initialize:对于大多数输入错误的命令,无法获得语言环境编码错误而不是通常的未知命令错误.
一旦我发现为什么会这样,我会继续调查并编辑我的答案(或参考现有的答案,如果有的话).
解决方法:
我建议取消PYTHONPATH.通常不需要它,并且通过使一个Python从另一个Python加载东西(在这种情况下,看起来系统的Python 3试图加载为Python 2编写的东西),它会导致事情破坏.
标签:python,python-2-7,conda,14-04 来源: https://codeday.me/bug/20190808/1618132.html