Fatal Python error: Py_Initialize: Unable to get the locale encoding ModuleNotFoundError: No module

在Linux系统中安装Python3.6遇到了如下错误:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f2ee58a0700 (most recent call first):
Aborted (core dumped)

解决方案一:

该问题一般是由于系统中存在其余版本Python互相冲突或者Python卸载残留所导致,可以通过查看当前系统中环境变量中存在的Python环境变量路径,删除多余和无效的环境变量,将有效的环境变量添加进去即可。

通过下列命令查看系统的环境变量设置:

root@a85fcf769a86:/# echo $PATH
/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

从上述可惜看出,当前我的Linux系统中有下列几个环境变量:

/usr/local/nvidia/bin;
/usr/local/cuda/bin;
/usr/local/sbin;
/usr/local/bin;
/usr/sbin;
/usr/bin;
/sbin;
/bin;

环境变量一般在系统的~/.bashrc文件中进行设置,通过vim可以查看该文件的内容。

vim ~/.bashrc

解决方案二:

有些Linux版本的Python安装教程中一般通过建立软链接的方式配置Python,而不是通过export的方式添加Python换环境变量。如下所示:

ln -s /usr/local/python3/bin/python3 /usr/bin/python3 
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 

所谓软连接就相当于win下的快捷方式,可以通过快捷方式打开指定的软件。之所以要把跨界方式添加在/usr/bin路径中,是因为该路径是系统默认添加的环境变量路径。所以,也可以将该路径换为其他环境变量路径。

当Python卸载之后,建立的软连接并不会被一同删除。当再次安装Python时,卸载残留的Python软链接会和当前安装的Python冲突,需要将无效的Python软链接删除,再配置当前安装的Python。

如果我们不知道之前安装的Python软链接是在哪个路径里,可以通过echo $PATH查看系统的所有环境变量,挨个查看每个路径里的文件,删除Python、Python3、pip、pip3等软链接文件,然后重新添加软连接即可。

如果无法确定是哪种情况导致的错误,建议把环境变量和软链接全部检查一遍,挨个排除问题所在,基本都可以解决。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值