解决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
2
3
4
5
tar zxvf Python-3.8.6.tgz
cd Python-3.8.6
./configure
make
make altinstall

1.3 设置系统默认使用 python3

1
2
3
cd /usr/bin
mv python python.bak
ln -s /usr/local/bin/python3.8 /usr/bin/python

1.4 设置自由切换

设置前请检查是否安装 update-alternatives 工具,键入update-alternatives --display python

若无则不显示任何信息,则准备就绪

将 python2 和 python3 分别添加为可选项

1
2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 2

/usr/bin/python 链接文件相同,/usr/local/bin/python3.8 则根据自己具体安装目录来设定,1、2 分别代表优先级

_

1.5 检查

键入python --version即可查看当前版本,如果显示Python 3.8.6则正常,否则需要进行切换操作。

1
2
3
4
5
6
7
8
9
sudo update-alternatives --config python
There are 2 programs which provide 'python'.

Selection Command
-----------------------------------------------
+ 1 /usr/bin/python2.7
* 2 /usr/local/bin/python3.8

Enter to keep the current selection[+], or type selection number(按 Enter 保留当前选项[+],或者键入选项编号:): 2

输入 2 即可成功切换。
倘若想删除附加,也可以进行管理。

1
2
sudo update-alternatives --remove python /usr/bin/python2.7 (删除2.7)
sudo update-alternatives --remove python /usr/local/bin/python3.8 (删除3.8)

1.6 升级 pip

键入cd /usr/bin 查询当前 pip 指令ll pip*
如果存在多少个 pip 就代表有多少个已经存在的命令,输入pip --version即可
现操作为删除当前的 pip 或者 pip3 软连接到最新的 pip 去。

1
2
3
4
5
6
7
8
9
10
11
# 删除pip文件
rm pip

# 查询pip3文件地址
whereis pip3

# 重新设置pip文件
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

# 可以再补加一个pip3命令
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

回到一开始的问题,重新 run 即可成功跑起,注意结束刚开始运行的程序:ps ef | gref python 然后通过-9 或者 killall 杀掉进程。

作者

Catooilg

发布于

2020-10-15

更新于

2023-02-05

许可协议

评论