这里写下我编译安装python3.7.11的整个过程以及解决报错的办法(期间所提的所有安装包,若有需要可以留言)。
操作系统:kylin.desktop-generic-aarch64-with-kylin-4.0.2
处理器:飞腾
1.解压上图的包
tar -zxvf Python-3.7.11
2.进入解压后的目录
cd Python-3.7.11
3.生成Makefile文件
./configure --prefix=/usr/local/python3711
报错:
configure: error: in `/usr/local/python3711':
configure: error: C compiler cannot create executables
See `config.log' for more details
根据错误提示,去config.log中查看详细信息(该文件就在当前目录)
有两处报错,第一处:
configure:3896: $? = 0
configure:3885: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3896: $? = 1
configure:3885: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input filescompilation terminated.
第二处:
configure:failed program was:
/* confdefs.h */
#define _GNU_SOURCE 1
#define _NETBSD_SOURCE 1
#define __BSD_VISIBLE 1
#define _DARWIN_C_SOURCE 1
#define _PYTHONFARMEWORK ""
#define _XOPEN_SOURCE 700
#define _XOPEN_SOURCE_EXTENDED 1
#define _POSIX_C_SOURCE 200809L
/* end confdefs.h */
int
main()
{
;
return 0;
}
查了很久,有人说第一处不算问题,有人说第二处是由于我们在编译软件之前,进行了export操作,改变了CFLAGS和LIBS的值,将之清空即可(分别执行sh export LIBS= 和 sh export CFLAGS= 命令),我试了,不行。
最后我将当前终端关掉,打开了一个新的终端就好了( -.- | )
参考:
4.编译
make
5.安装
make install
6.查看版本
python --version只能查到机器原有的python2.7,python2 --version一样,python3 --version只能查到机器原有的python3.5
尝试将python3.7.11的路径加入环境变量,还是不行
最终通过创建软链接的方式成功,步骤如下:
1).查看/usr/bin中是否已有python2.7的软链接
ls -al /usr/bin 结果如下图,python和python2是python2.7的软链接,python3是python3.5的软链接,所以查看版本的时候查不到新装的python3.7.11
2).查看python3.7.11的安装目录
ls -al /usr/local/python3711/bin 结果如下图,虽然python3.7已有软链接,但只在当前目录才起作用,所以必须在/usr/bin下创建python3.7.11的软链接
3).创建软链接
rm -rf /usr/bin/python
ln -s /usr/local/python3711/bin/python3.7 /usr/bin/python
rm -rf /usr/bin/python3
In -s /usr/local/python3711/bin/python3.7 /usr/bin/python3
4).查看版本
python --version
python3 --version