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

环境:

[root@localhost python3]# cat /etc/redhat-release

CentOS Linux release 7.5.1804 (Core)

[root@localhost python3]#

1、下载Python

方式一:

方式二:

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

ba5903e8d8229cff427f614fceb4a4dc.png

8320f238c12501c0d2339f3113a49a21.png

看到Python-3.7.2.tgz

d1bf6f459420da1d5e8ba6845e119513.png

我们回到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]#

3、 指定安装位置

./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 相关模块。readline 是 bash shell 用的库,包含许多使用功能,例如:命令行自动补全。

如果没有安装,请执行:yum -y install readline readline-devel

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

make编译

[root@localhost Python-3.7.2]# make

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

5、安装

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、快速启动

方法一:生成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 ~]#

方法二:更改别名

为使Python3和pip正常使用,请修改文件~.bashrc文件——指明pip3和python3的别名。

在文件末尾添加下面的语句:

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

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

详细过程如下:

[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 ~]# pip3

Usage:

pip3 [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 logging

levels).

--log Path to a verbose appending log.

--proxy Specify a proxy in the form [user:passwd@]proxy.server:port.

--retries Maximum number of retries each connection should attempt (default 5 times).

--timeout Set the socket timeout (default 15 seconds).

--exists-action Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).

--trusted-host Mark this host as trusted, even though it does not have valid or any HTTPS.

--cert Path to alternate CA bundle.

--client-cert Path to SSL client certificate, a single file containing the private key and the certificate in PEM format.

--cache-dir

--no-cache-dir Disable the cache.

--disable-pip-version-check

Don'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 ~]#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专建筑力学 (4)作业 题库

1.下列说法不正确的是()。 A.力偶在任何坐标轴上的投形恒为零 B.力可以平移到刚体内的任意一点 C.力系的合力在某一轴上的投形等于各分力在同一轴上投形的代数和 D.力使物体绕某一点转动的效应取决于力的大小和力作用线到该点的垂直距离 正确 正确答案&a…

java criteria and_criteria用法

Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如:Java代码Criteria criteria session.createCriteria(User.class);criteria.add(Expression.eq(&q…

【渝粤教育】电大中专新媒体营销实务 (4)作业 题库

1.( )对新媒体的定义为:“以数字信息技术为基础,以互动传播为特点,具有创新形态的媒体。” A.新传媒产业联盟秘书长王斌 B.联合国教科文组织 C.华纳兄弟总裁施瓦茨威格 正确 正确答案:左边查询 学生答案&am…

服务网格:Istio和AWS App Mesh

本周在AWS re:Invent上的重大公告之一是AWS App Mesh 。 在谈论它之前,让我们先看一下网格到底是什么…… 什么是服务网格? 服务网格是微服务体系结构的基础结构层。 它处理服务之间的通信问题,使该通信更加可见(或“…

【渝粤教育】电大中专消费者心理学_1作业 题库

1.在西方,早期思想家也有论及消费时令和消费季节的朴素思想。该说法() A.错误 B.正确 正确 正确答案:左边查询 学生答案:A 2.体系凝构阶段大致自20世纪70年代延至20世纪末或21世纪初。该说法() …

java按键发出声音代码_怎么在java中给按钮添加声音?

可以加入GTM时间,代码如下:public class ShowCurrentTime {public static void main(String args[]){//Obtain the total milliseconds since midnight,Jan 1,1970long totalMillisecondsSystem.currentTimeMillis();//Obtain the total seconds since i…

Spring字段依赖注入示例

学习如何编写Spring Field Injection示例 。 字段注入是Spring框架 依赖注入的一种 。 在本教程中,我们将编写几个类,并看一看现场注入工程。 有关Spring依赖注入的更多信息: Spring Setter依赖注入示例 Spring构造函数依赖注入示例 Spri…

java8 新特性之流式数据处理_Java8新特性 - 集合流式编程 - 最终操作

2、数据源的获取2.1、数据源的简介数据源,顾名思义,既是流中的数据的来源。是集合的流式编程的第一步,将数据源中的数据读取到流中,进行处理。注意:将数据读取到流中进行处理的时候,与数据源中的数据没有关…

【渝粤教育】电大中专电大中专职业健康与安全考试考核试题作业 题库

试卷答案 1根据系统安全工程的观点,危险是指系统中存在导致发生不期望后果的可能性超过了( ) A极限 B人们的承受程度 C危险度 D安全系数 错误 正确答案:左边查询 学生答案:A 2对职工来说,安全是&#xff0…

java jdt_在JDT中使用Java 8 Lambda

java jdt旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言。 我承认我对Java 8中的lambda有点不满意。 当然,这来自于知道Smalltalk (和LISP…

java 1.8签名apk_给Android的APK程序签名和重新签名的方法

签名工具的使用Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的。使用格式:java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar-w 是指对ROM签名时需使用的参数publickey.x509[.pem] 是公钥文件pri…

【渝粤教育】电大中专职业生涯规划 (3)作业 题库

1职业价值观具有明确的目的性、( )和坚定性的职业选择的态度和行为。 A自由性 B动机性 C自觉性 D制约性 错误 正确答案:左边查询 学生答案:A 2不属于探索价值观方法的是( )。 A澄清反应法 B意见表决法 C间接…

使用Oracle验证外部数据

我经常在Corda Slack频道中闲逛,并尽可能回答问题。 我尝试回答的合理数量的问题与Oracle有关。 更具体地说,何时使用一个。 我觉得我可以回答,“当您需要验证可能经常更改的外部数据时使用Oracle”。 我可能在某个时候写了一个类似的答案。 …

【渝粤教育】电大中专药理学基础 (2)_1作业 题库

1.关于苯二氮卓类镇静催眠药的叙述,不正确的是()。 A.长期应用不会产生依赖性和成瘾性 B.是目前最常用的镇静催眠药 C.可用于治疗小儿高热惊厥 D.临床上用于治疗焦虑症 E.可用于心脏电复律前给药 错误 正确答案:左边查询 学生答案…

【渝粤教育】电大中专计算机职业素养 (11)作业 题库

1.用冰山模型说明职业素养构成时,我们把浮在水面上面的知识、技能等部分称为( )的职业素养。 A.获得 B.显性 C.专业 D.隐性 错误 正确答案:左边查询 学生答案:A 2.职业素养的基本内容包括:职业道德、职业意…

java 2d 教程_Java 2D开发技巧之“灯光与阴影”

Java 2D开发技巧之“灯光与阴影”(2016-12-14 02:12:25)标签:杂谈一、 引言在本文中,我们将向你展示如何为扁平形状添加一种灯光效果以实现一种类3D外观。也许你比较满意于自己的文字表达能力,但一幅图片往往能够产生更好的效果。对于图形处理…

【渝粤教育】电大中专跨境电子商务理论与实务 (17)作业 题库

1.在按照交易主体类型中,( )面对的最终客户为企业或集团客户,提供企业、产品、服务等相关信息。 A.C2C跨境电商或平台 B.B2C跨境电商或平台 C.O2O跨境电商或平台 D.B2B跨境电商或平台 错误 正确答案:左边查询 学生答案…

jooq代码生成_将jOOQ与Spring结合使用:代码生成

jooq代码生成我们可能在本教程的第一部分中还记得jOOQ指出 jOOQ从您的数据库生成Java代码,并允许您通过其流畅的API构建类型安全SQL查询。 本教程的第一部分描述了如何配置使用jOOQ的Spring驱动的应用程序的应用程序上下文,但没有描述如何使用jOOQ创建类…

【渝粤题库】陕西师范大学151109财务报告分析 作业(高起专)

《财务分析》作业 一、单选题 1.以下哪个不属于杜邦分析法的优点( )。 2.以下哪个不是比率的具体表现形式( )。 3.根据财务报表的审计结果,具有较大可信度的审计意见类型是( )。 4.关于杠杆的…

【渝粤题库】陕西师范大学200131中国古代文论 作业(专升本)

《中国古代文论》作业 一、注明下列文献的作者及年代: 1、《典论论文》 2、《文选序》 3、《戏为六绝句》 5、《与元九书》 6、《送孟东野序》 7、《六一诗话》 8、《雪涛阁集序》 9、《文赋》 10、《诗品》 11、《诗品序》 12、《文心雕龙》 13、《沧浪诗话》 14、…