Linux 系统中 Fatal Python error: Py_Initialize: Unable to get the locale encoding

来源:互联网 发布:帝国cms网站源码 编辑:程序博客网 时间:2024/06/06 13:09
 问题:


lx@lx-PC:~$ python
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'


类似问题:command not found:conda

暂时性的解决方法是:

export PATH="/home/[your_name]/anaconda/bin:$PATH"

但是下一次重启之后,还是会出现这个问题,所以我们要acivate ~/.bash_profile

. ~/.bash_profile#或者source ~/.bash_profile

这样应该就能搞定了。



第一步找Python安转目录

1、默认Python安装情况


一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10。

使用命令:which python可以查看当前的python的安装路径: 

打开对应路径就可以看到(python目录下有这些文件,即:有类似这些文件(python,python2,python2.7)的目录,才是自己系统中对应的python目录)

 

如果没有明确必须要使用Python3的版本,可以直接使用2.7.10的版本。

明确需要使用Python3版本,再进行更改。

 

这里需要说明一点:上图中存在有python,python2,python3,说明安装了2和3的版本


第二步:

Linux将命令添加到PATH:
LinuxApacheBash

简单说PATH就是一组路径的字符串变量,当你输入的命令不带任何路径时,LINUX会在PATH记录的路径中查找该命令。有的话则执行,不存在则提示命令找不到。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls命令根本不在这个两个目录下,当你输入ls命令时LINUX会去/bin,/usr/bin,/sbin等目录寻找该命令。而PATH就是定义/bin:/sbin:/usr/bin等这些路劲的变量,其中冒号为目录间的分割符。

如何自定义路径:
假设你新编译安装了一个apache在/usr/local/apache下,你希望每次启动的时候不用敲一大串字符(# /usr/local/apache/bin/apachectl start)才能使用它,而是直接像ls一样在任何地方都直接输入类似这样(# apachectl start)的简短命令。这时,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/local/apache/bin。将/usr/local/apache/bin添加到PATH中有三种方法:

1、直接在命令行中设置PATH
# PATH=$PATH:/usr/local/apache/bin
使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效。

2、在profile中设置PATH
# vi /etc/profile
找到export行,在下面新增加一行,内容为:export PATH=$PATH:/usr/local/apache/bin。
注:= 等号两边不能有任何空格。这种方法最好,除非手动强制修改PATH的值,否则将不会被改变。
编辑/etc/profile后PATH的修改不会立马生效,如果需要立即生效的话,可以执行# source profile命令。

3、在当前用户的profile中设置PATH
# vi ~/.bash_profile
修改PATH行,把/usr/local/apache/bin添加进去,如:PATH=$PATH:$HOME/bin:/usr/local/apache/bin。
# source ~/.bash_profile
让这次的修改生效。
注:这种方法只对当前用户起作用的,其他用户该修改无效。

 

去除自定义路径:
当你发现新增路径/usr/local/apache/bin没用或不需要时,你可以在以前修改的/etc/profile或~/.bash_profile文件中删除你曾今自定义的路径。


第三步:

在.profile文件中添加路径:

export PATH="$PATH:/home/lx/anaconda3/bin"


PASH环境变量的设置方法:

方法一:用户主目录下的.profile或.bashrc文件(推荐)

登录到你的用户(非root),在终端输入:
$ sudo gedit ~/.profile(or .bashrc)
可以在此文件末尾加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
保存文件,注销再登录,变量生效。
该方式添加的变量只对当前用户有效。

方法二:系统目录下的profile文件(谨慎)

在系统的etc目录下,有一个profile文件,编辑该文件:
$ sudo gedit /etc/profile
在最后加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
该文件编辑保存后,重启系统,变量生效。
该方式添加的变量对所有的用户都有效。

方法三:系统目录下的 environment 文件(谨慎)

在系统的etc目录下,有一个environment文件,编辑该文件:
$ sudo gedit /etc/environment
找到以下的 PATH 变量:
PATH="<......>"
修改该 PATH 变量,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。
注意这里不是添加export PATH=… 。

方法四:直接在终端下输入

$ sudo export PATH="$PATH:your path1:your path2 …"
这种方式变量立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。


注 意:方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此笔者推荐使用第一种方法。另外嵌入式 Linux的开发最好不要在root下进行(除非你对Linux已经非常熟悉了!!),以免因为操作不当导致系统严重错误。

下面是一个对environment文件错误修改导致的问题以及解决方法示例:

问题:因为不小心在 etc/environment里设在环境变量导致无法登录
提示:不要在 etc/environment里设置 export PATH这样会导致重启后登录不了系统
解决方法:
在登录界面 alt +ctrl+f1进入命令模式,如果不是root用户需要键入(root用户就不许这么罗嗦,gedit编辑会不可显示)
/usr/bin/sudo /usr/bin/vi /etc/environment
光标移到export PATH** 行,连续按 d两次删除该行;
输入:wq保存退出;
然后键入/sbin/reboot重启系统(可能会提示need to boot,此时直接power off)

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝一岁半了还不会说话怎么办 十个月宝宝不吃辅食怎么办 八个月宝宝不吃米糊怎么办 八个月宝宝不吃辅食怎么办 六个月宝宝不吃米粉怎么办 4个月婴儿积食怎么办 黑色的衣服泛红怎么办 不听劝的人该怎么办 牛仔裙子腰大了怎么办 天猫店铺降权怎么办 淘宝做文胸的标题要怎么办 秋衣弹力衣服松了怎么办 假离婚变成真的怎么办 百家利钱不到账怎么办 皮鞋撑大了怎么办变小 鞋穿着走路掉跟怎么办 浅口帆布鞋大了怎么办 布鞋后鞋跟老掉怎么办 穿坡跟凉鞋容易打滑摔倒怎么办 运动鞋烂了个口怎么办 运动鞋的网烂了怎么办 运动鞋鞋一个一个高一个低怎么办 淘宝预售水果不发货怎么办 淘宝评价忘记晒图了怎么办 参加水果展没有实物怎么办 没做过运营面试怎么办 苹果5s16g内存满了怎么办 618天猫有活动淘宝没有怎么办 天猫国际买到假货怎么办 天猫恶意差评怎么办 天猫删除差评被扣分了怎么办 天猫收到差评怎么办 天猫给差评骚扰怎么办 天猫客户差评怎么办 天猫没法给差评怎么办 天猫上限购一件怎么办 拍下商品不发货怎么办 天猫红包过期了怎么办 买天猫店被中介骗了钱怎么办 速卖通假货纠纷怎么办 天猫新开店被恶意拍下怎么办