解决Python编译问题小插曲
起因
一切的一切都因为这个。
诚然,SyntaxError: Non-ASCII character '\xe5' in file
就是问题所在,出现这个问题的缘由是已经摆在面前,python 的默认编码文件是用的 ASCII 码,而你的 python 文件中使用了中文等非英语字符。解决方法是直接在报错的文件最开头加上# -*- coding:UTF-8 -*-
或者# coding=UTF-8
即可。但是也不要不排除它是因为 python2 的原因,因为在 python2 的 py 文件里面写中文,则必须要添加一行声明文件编码的注释,否则 python2 会默认使用 ASCII 编码,所以这里考虑前任开发使用的环境是 python3
安装双 Python 版本
具体要求是实现:在 centos 上安装 python3,并且自由切换 python2 和 python3
1.1 在当前目录下载源文件
1 | wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz |
1.2 解压并开始安装
1 | tar zxvf Python-3.8.6.tgz |
1.3 设置系统默认使用 python3
1 | cd /usr/bin |
1.4 设置自由切换
设置前请检查是否安装 update-alternatives 工具,键入update-alternatives --display python
若无则不显示任何信息,则准备就绪
将 python2 和 python3 分别添加为可选项
1 | sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 |
/usr/bin/python 链接文件相同,/usr/local/bin/python3.8 则根据自己具体安装目录来设定,1、2 分别代表优先级
__
1.5 检查
键入python --version
即可查看当前版本,如果显示Python 3.8.6
则正常,否则需要进行切换操作。
1 | sudo update-alternatives --config python |
输入 2 即可成功切换。
倘若想删除附加,也可以进行管理。
1 | sudo update-alternatives --remove python /usr/bin/python2.7 (删除2.7) |
1.6 升级 pip
键入cd /usr/bin
查询当前 pip 指令ll pip*
如果存在多少个 pip 就代表有多少个已经存在的命令,输入pip --version
即可
现操作为删除当前的 pip 或者 pip3 软连接到最新的 pip 去。
1 | # 删除pip文件 |
回到一开始的问题,重新 run 即可成功跑起,注意结束刚开始运行的程序:ps ef | gref python
然后通过-9 或者 killall 杀掉进程。
解决Python编译问题小插曲