环境:
[root@localhost python3]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost python3]#
1、下载Python

方式一:

  • 进入 https://www.python.org/downloads/source/ 选择相应版本下载之后用FTP工具上传到Linux上。

方式二:

  • 进入https://www.python.org/ftp/python/ 这里存放着所有版本的Python源码。往下拉看到最新版本3.7.2/,点击进入


  • 看到Python-3.7.2.tgz

  • 然后根据地址栏的链接拼接成如下链接:https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

我们回到Linux终端,开始下载Python3.7源码包:
这里需要新建一个文件夹/usr/local/src/以保存下载的源码包和待会解压之后的文件。

[root@localhost ~]# mkdir /usr/local/src  # 如果存在请忽略
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
2、下载完成后解压缩:
[root@localhost src]# ls -al | grep Python
-rw-r--r--   1 root root   22897802 12月 24 11:42 Python-3.7.2.tgz
[root@localhost src]# tar -zxvf Python-3.7.2.tgz
...
[root@localhost src]# ls -al | grep Python
drwxr-xr-x  18  501   501      4096 12月 24 11:41 Python-3.7.2
-rw-r--r--   1 root root   22897802 12月 24 11:42 Python-3.7.2.tgz
[root@localhost src]#

注:请确认是否安装gcc,否则:

yum -y install gcc
3、 指定安装位置

更正时间:2019-3-24

检查是否安装openssl-devel,没安装请安装(原因详 https://blog.csdn.net/jiduochou963/article/details/88788805 ):

yum install -y openssl-devel

这里指定--with-ssl参数,原因详 https://blog.csdn.net/jiduochou963/article/details/88774848 :

./configure --prefix=/usr/local/python3 --with-ssl

./configure --prefix=安装路径,这里建议安装在/usr/local/python3下面,即:

[root@localhost Python-3.7.2]# cd Python-3.7.2/
[root@localhost Python-3.7.2]# ./configure --prefix=/usr/local/python3
4、编译

编译之前请确认是否安装安装 readline 相关模块。readlinebash shell 用的库,包含许多使用功能,例如:命令行自动补全。
如果没有安装,请执行:yum -y install readline readline-devel

请确认是否有zlib的相关工具包,否则:

zipimport.ZipImportError: can't decompress data; zlib not available

所以,安装zlib:

yum -y install zlib*

上述操作完成之后,开始编译:
make编译

[root@localhost Python-3.7.2]# make

编译时间取决于硬件配置,耐心等待。

5、安装

注:请确认是否有libffi-devel(原因详下),否则安装:

yum -y install libffi-devel

make install 编译安装

[root@localhost Python-3.7.2]# make install

如果安装出现异常ModuleNotFoundError: No module named '_ctypes',不要慌,这是因为在安装Python3.7以上版本时,需要一个新的libffi-devel包做依赖,执行命令安装:

yum -y install libffi-devel

安装完成后,重新执行make install即可。

Looking in links: /tmp/tmpea1pr1kb
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2
[root@localhost Python-3.7.2]#
6、启动

如果没有异常,则启动Python3.7测试一下是否安装成功:
启动位置:/usr/local/python3/bin/python3

[root@localhost Python-3.7.2]# cd ~
[root@localhost ~]# ls -al /usr/local/python3/
总用量 0
drwxr-xr-x   6 root root  56 1月  29 19:53 .
drwxr-xr-x. 19 root root 222 1月  29 19:53 ..
drwxr-xr-x   2 root root 295 1月  29 19:53 bin
drwxr-xr-x   3 root root  24 1月  29 19:53 include
drwxr-xr-x   4 root root  63 1月  29 19:53 lib
drwxr-xr-x   3 root root  17 1月  29 19:53 share
[root@localhost ~]# /usr/local/python3/bin/p
pip3               pydoc3             python3            python3.7-config   python3.7m-config  pyvenv
pip3.7             pydoc3.7           python3.7          python3.7m         python3-config     pyvenv-3.7
[root@localhost ~]# /usr/local/python3/bin/python3
Python 3.7.2 (default, Jan 29 2019, 19:48:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@localhost ~]# /usr/local/python3/bin/python3.7
Python 3.7.2 (default, Jan 29 2019, 19:48:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@localhost ~]#
7、快速启动
  1. 方法一:生成Python3的软链接

/usr/bin路径下生成Python3的软链接:ln -s /usr/local/python3/bin/python3 /usr/bin/python3

[root@localhost ~]# rm -rf /usr/bin/python3
[root@localhost ~]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost ~]# python3
Python 3.7.2 (default, Jan 29 2019, 19:48:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@localhost ~]#

详细: https://blog.csdn.net/jiduochou963/article/details/88784416

  1. 方法二:更改别名

为使Python3和pip正常使用,请修改文件~.bashrc文件——指明pip3和python3的别名。
在文件末尾添加下面的语句:

alias python3='/usr/local/python3/bin/python3.7'
alias pip3='/usr/local/python3/bin/pip3'

如果不想默认使用Python2环境,请直接将其替换,配置如下:

alias python='/usr/local/python3/bin/python3.7'
alias pip='/usr/local/python3/bin/pip3.7'

详细过程如下:

[root@localhost bin]# cd ~
[root@localhost ~]# ls -al /usr/local/python3/bin/
总用量 27336
drwxr-xr-x 2 root root      295 1月  30 12:27 .
drwxr-xr-x 6 root root       56 1月  30 12:27 ..
lrwxrwxrwx 1 root root        8 1月  30 12:27 2to3 -> 2to3-3.7
-rwxr-xr-x 1 root root      109 1月  30 12:27 2to3-3.7
-rwxr-xr-x 1 root root      250 1月  30 12:27 easy_install-3.7
lrwxrwxrwx 1 root root        7 1月  30 12:27 idle3 -> idle3.7
-rwxr-xr-x 1 root root      107 1月  30 12:27 idle3.7
-rwxr-xr-x 1 root root      232 1月  30 12:27 pip3
-rwxr-xr-x 1 root root      232 1月  30 12:27 pip3.7
lrwxrwxrwx 1 root root        8 1月  30 12:27 pydoc3 -> pydoc3.7
-rwxr-xr-x 1 root root       92 1月  30 12:27 pydoc3.7
lrwxrwxrwx 1 root root        9 1月  30 12:27 python3 -> python3.7
-rwxr-xr-x 2 root root 13979352 1月  30 12:27 python3.7
lrwxrwxrwx 1 root root       17 1月  30 12:27 python3.7-config -> python3.7m-config
-rwxr-xr-x 2 root root 13979352 1月  30 12:27 python3.7m
-rwxr-xr-x 1 root root     3105 1月  30 12:27 python3.7m-config
lrwxrwxrwx 1 root root       16 1月  30 12:27 python3-config -> python3.7-config
lrwxrwxrwx 1 root root       10 1月  30 12:27 pyvenv -> pyvenv-3.7
-rwxr-xr-x 1 root root      449 1月  30 12:27 pyvenv-3.7
[root@localhost ~]# cat .bashrc
# .bashrc# User specific aliases and functions
...
[root@localhost ~]# vim .bashrc
# .bashrc# User specific aliases and functions
...
alias python3='/usr/local/python3/bin/python3.7'
alias pip3='/usr/local/python3/bin/pip3':wq
[root@localhost ~]# cat .bashrc
# .bashrc# User specific aliases and functions
...
alias python3='/usr/local/python3/bin/python3.7'
alias pip3='/usr/local/python3/bin/pip3'
[root@localhost ~]#

测试pip:不要忘记source编译

[root@localhost ~]# pip3
bash: pip3: 未找到命令...
[root@localhost ~]# source ~/.bashrc
[root@localhost ~]# pip3Usage:   pip3 <command> [options]Commands:install                     Install packages.download                    Download packages.uninstall                   Uninstall packages.freeze                      Output installed packages in requirements format.list                        List installed packages.show                        Show information about installed packages.check                       Verify installed packages have compatible dependencies.config                      Manage local and global configuration.search                      Search PyPI for packages.wheel                       Build wheels from your requirements.hash                        Compute hashes of package archives.completion                  A helper command used for command completion.help                        Show help for commands.General Options:-h, --help                  Show help.--isolated                  Run pip in an isolated mode, ignoring environment variables and user configuration.-v, --verbose               Give more output. Option is additive, and can be used up to 3 times.-V, --version               Show version and exit.-q, --quiet                 Give less output. Option is additive, and can be used up to 3 times (corresponding to WARNING, ERROR, and CRITICAL logginglevels).--log <path>                Path to a verbose appending log.--proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.--retries <retries>         Maximum number of retries each connection should attempt (default 5 times).--timeout <sec>             Set the socket timeout (default 15 seconds).--exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).--trusted-host <hostname>   Mark this host as trusted, even though it does not have valid or any HTTPS.--cert <path>               Path to alternate CA bundle.--client-cert <path>        Path to SSL client certificate, a single file containing the private key and the certificate in PEM format.--cache-dir <dir>           Store the cache data in <dir>.--no-cache-dir              Disable the cache.--disable-pip-version-checkDon't periodically check PyPI to determine whether a new version of pip is available for download. Implied with --no-index.--no-color                  Suppress colored output
[root@localhost ~]#

Python3.7源码包编译安装相关推荐

  1. 编译 php mysql 依赖包_MySQL 5.5.15源码包编译安装

    mysql果然是不愧是目前最火的数据库,自从mysql5.5.8之后,mysql的源码包编译安装都要用到cmake来进行编译了,编译的过程没有本质 mysql果然是不愧是目前最火的数据库,自从mysq ...

  2. Nginx实战基础篇一 源码包编译安装部署web服务器

    Nginx实战基础篇一 源码包编译安装部署web服务器 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览.表演.放映.广播或通 ...

  3. 如何在源码包编译安装的 LEMP 环境下开启 OpenSSL 功能

    如何在源码包编译安装的 LEMP 环境下开启 OpenSSL 功能 Hello,大家好!我是--邪恶君子! 今天,给大家分享一下解决源码包编译安装 LEMP 环境下开启 OpenSSL 功能问题的过程 ...

  4. 源码包编译安装python_Python3.7源码包编译安装-Go语言中文社区

    环境: [root@localhost python3]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@loc ...

  5. MySQL源码包编译安装

    +++++++++++++++++++++++++++++++++++++++++++ 标题:MySQL数据库实例部署 时间:2019年5月2日 内容:MySQL源码包进行编译,然后部署MySQL单实 ...

  6. RedHat6.4系统下LAMP环境的搭建---(源码包编译安装)---v1.0

    一:配置本地yum源 :--目录 作者:李文轩 座右铭:一个愿意为理想奋斗终生的人! 联系QQ:838997384 网站地址:www.74cto.com 说明:本篇安装的系统版本RedHat6.4(6 ...

  7. Day13 目录结构自定义Yum仓库源码包编译安装(Service02)

    一.linux一级目录 man hier可以查看所有一级目录的作用 1.1 /bin 普通用户使用的常用命令 1.2 /boot 系统引导必须的文件,包括内核.启动配置 1.3 /dev 键盘.硬盘. ...

  8. linux从源码编译软件,linux软件包管理——源码包编译安装

    做为运维人员来讲,很多时候我们直接使用别人给我们提供的RPM包来安装程序时,总达不到自己理想的效果,第一,编译开启的功能并不是自己想要的:第二,用不上最新的源代码,因为RPM包的源代码总会滞后于最新的 ...

  9. centos7编译安装mysql5.7_在Centos7源码包编译安装MySQL5.7

    1.通过国内镜像下载源码包 下载包含boost的源码包 wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.23.tar.gz 2 ...

最新文章

  1. Delphi调用java开发的WebService,传入参数出错
  2. Java IO: Buffered和Data
  3. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )
  4. Building an MFC project for a non-Unicode character set is deprecated
  5. mysql 英文占几个字符_MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚...
  6. ajax实现下拉列表联动
  7. python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现
  8. c语言结构体数组存入文件_c语言怎么用文件保存和读取 结构体数组/
  9. 发外链网站服务器瘫痪,哪些操作可以导致网站接入瘫痪 - 搜外SEO问答
  10. mod libs 课堂
  11. Excel使用VBA小程序的方法
  12. Visual Object Classes Challenge 2012 (VOC2012) 简介
  13. easypoi 表头数据导入_使用easypoi根据表头信息动态导出excel
  14. 实操!!!论坛项目开发流程(java)
  15. php将两张图片合并成一张,加上文字
  16. 【数据处理】正则匹配指定字符传后面的字符
  17. iOS - 解决Warning: Attempt to present which is already presenting
  18. php mail 163邮箱,使用PHPMail发送邮箱(163邮箱为例)
  19. Pytorch里addmm()和addmm_()的用法详解
  20. 信息差副业小项目,高利润,新手日入500+

热门文章

  1. CAD梦想画图如何新建或修改尺寸样式
  2. MongoDBTemplate中通过ID查询不出数据
  3. PyQt5基础使用!(二)
  4. listview的分类,仿京东分类
  5. OBS显示器捕获黑屏问题
  6. 第三章 软件构造过程与配置管理
  7. Airfoil 5.8.4 特别版 Mac 多平台音频同步播放神器
  8. 乌班图下配置PHP运行环境
  9. 专业的照片后期处理——(你所不知道的)
  10. 同济大学软件学院万院长谈择业- -(转)