vagrant 中的 centos7 虚拟机安装 python3

Author Avatar
mgzu POST: 2019-09-23 UPDATED: 2019-10-18

由于项目中有 python 脚本需要在 linux 中运行,于是尝试了下在 vagrant 中的 centos7 虚拟机中安装 python3,本文记录了操作过程中遇到的问题。

环境准备

安装编译环境

1
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc-c++ libffi-devel

下载最新的 python 源码

1
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

解压

1
tar -zxvf Python-3.7.3.tgz

安装 python

1
cd Python-3.7.3

生成 Makefile 并编译安装 python,一般来说,这里不会有问题。不幸的是我遇到了,错误信息及解决方案将写在文末。

1
./configure make&&make install

设置环境

可以使用 type 命令查看 python3 最终的执行路径,其它的如 yum 的配置可以自行查找资料。

1
type python3

错误信息及解决方案

1
2
3
4
5
# 运行的命令
./configure
# 错误信息
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.

直接使用 ./configure 无法生成 Makefile,这时需要指定 –host(运行平台) –build(编译平台)

1
2
3
4
# 运行的命令
./configure --host=x86_64 --build=x86_64-linux
# 错误信息
checking for python interpreter for cross build... configure: error: python3.7 interpreter not found

指定 –host –build 后,报错解释器未找到,这是因为 –host –build 不同,这时会使用交叉编译,而我们可以指定为相同的值,使检测时不使用交叉编译。

1
2
3
4
5
# 运行的命令
./configure --prefix=/usr/local/python3 --build=x86_64-linux-gnu --host=x86_64-linux-gnu
# 错误信息
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.

这是因为在虚拟机的共享分区(与 win 的共享目录)中运行的命令,将文件移动到其它非共享分区,再次运行命令即可生成 Makefile。

https://askubuntu.com/questions/360329/error-cannot-run-c-compiled-programs-if-you-meant-to-cross-compile-use-host


Last updated: 2019-10-18

This blog is under a CC BY-NC-SA 4.0 International License
本文链接:http://mgzu.github.io/2019/09/23/vagrant-centos7-install-python3/