Python显示错误GCC版本求助:已装GCC v6却显示v5
为什么安装了GCC v6但Python解释器仍显示GCC v5?
嗨,这个问题其实挺普遍的,我来给你理清楚背后的原因,再说说如果想要Python关联GCC v6该怎么做:
核心原因
- Python的版本信息绑定编译时的GCC:你当前用的Python2和Python3是Xubuntu 16.04系统预装的版本,它们在系统发布时就是用GCC v5编译完成的。解释器显示的GCC版本是它被编译时使用的编译器版本,和你后来更新的系统GCC版本没有直接关系。
- GCC更新不会自动重编译系统软件:通过包管理器更新GCC只是替换了系统里的编译器工具链,但不会自动重新编译所有已安装的软件(包括Python)。预装的Python程序依然保留着编译时的元信息,所以版本提示还是GCC v5。
如果你想让Python使用GCC v6编译(显示对应版本)
有两种常见的处理方式:
从源码编译自定义Python版本
这是最直接的方式,你可以指定用GCC v6编译Python:- 先安装编译依赖:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev - 下载你需要的Python源码包(比如对应系统默认的Python3.5版本),解压后进入源码目录
- 配置编译参数,指定使用GCC v6:
CC=gcc-6 ./configure --prefix=/usr/local/python-gcc6 - 编译并安装:
make && sudo make install
之后你可以通过
/usr/local/python-gcc6/bin/python3调用这个用GCC v6编译的Python,它的版本信息就会显示GCC v6了。- 先安装编译依赖:
切换系统默认GCC版本(不改变现有Python)
如果你只是想让系统默认使用GCC v6(方便后续编译其他软件),可以用update-alternatives工具切换:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60然后运行
sudo update-alternatives --config gcc,按照提示选择GCC v6作为默认版本即可。注意这个操作不会改变已安装Python的编译版本,只是后续新编译的软件会用这个默认GCC。
内容的提问来源于stack exchange,提问作者Mohit Negi
相关产品推荐
相关产品推荐

