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)
- Linux 系统中 Fatal Python error: Py_Initialize: Unable to get the locale encoding
- python 3安装错误 Fatal Python error: Py_Initialize: Unable to get the locale encoding
- Openwrt下安装Python3.5运行出现异常:Fatal Python error: Py_Initialize: Unable to get the locale encoding
- fatal: unable to access : The requested URL returned error: 403
- ERROR: unable to get the receiver data from the DB!
- Fatal error: Unable to find local grunt
- [ERROR][com.freerdp.locale] - Unable to detect time zone
- Push failed fatal: unable to access 'https://github.The requested URL returned error: 403
- Python:Fatal error in launcher: Unable to create process using pip.exe
- Python:Fatal error in launcher: Unable to create process using pip.exe
- python pip使用报错:Fatal error in launcher: Unable to create process using '"'
- unable to get system library for the project" error when import android project to eclips
- iOS ERROR: unable to get the receiver data from the DB 解决方案
- Linux系统中安装golang-go时出现unable to lock the administration directory的解决
- cpywin error:fatal error - unable to remap(solutions)
- Unable to get the default Bean Validation
- Unable to get the default Bean Validation
- Unable to get the default Bean Validation
- 10张图看懂瞎忙和高效的区别,你中枪了吗?
- jdk工具--jcmd
- 校外见习—思考题
- 关于使用C++11中委托构造函数
- select null与select 1区别
- Linux 系统中 Fatal Python error: Py_Initialize: Unable to get the locale encoding
- 斯坦福大学命名实体识别
- 极大化思想——洛谷 P1578 奶牛浴场
- 别不好意思拒绝别人,反正那些好意思为难你的人都不是什么好人
- Matlab中几个数值积分函数的比较和优缺点
- DataFrame 排序
- 欢迎使用CSDN-markdown编辑器
- php模拟登录
- 面向接口编程详解(三)——模式研究(转)