源码包编译安装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,一经查实,立即删除!

相关文章

java criteria and_criteria用法

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

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…

使用Oracle验证外部数据

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

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

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

java连接到mysql_[操作系统]Java如何连接到MySQL数据库的

[操作系统]Java如何连接到MySQL数据库的0 2016-05-01 15:00:15下载:mysql-connector-java-5.1.38.tar.gzhttp://dev.mysql.com/downloads/connector/j/tar zxvfmysql-connector-java-5.1.38.tar.gz解压后zhouspubuntu:~/Downloads$cd ./mysql-connector-java-5.1.38…

Spark Run本地设计模式

现在,许多Spark应用程序已成为遗留应用程序,很难在本地进行增强,测试和运行。 Spark具有很好的测试支持,但仍有许多Spark应用程序不可测试。 当您尝试运行一些旧的Spark应用程序时,我将分享一个常见错误。 Exceptio…

mysql导入创建表空间_oracle创建表空间 导入数据库

oracle2 然后是创建表空间创建表空间需要创建两个一个临时表空间 一个表空间--创建表空间create tablespace abc datafile ‘D:\tablespce\LANDHIGH_SFTMS.dbf‘ size 500m;--创建用户并指定表空间create user admin identified by admin default tablespace abc quota 500m …

Java线程的不同状态

介绍 在Java中,线程可以具有状态。 Thread.State枚举定义Java线程可以具有的不同状态。 该枚举定义了以下值– 新 可运行 已封锁 等候 TIMED_WAITING 已终止 在接下来的部分中,我将简要概述这些状态以及它们之间的可能过渡。 Java线程的状态 新 …

IDE日志分析方法pt。 2

介绍 在第一部分中,我解释了日志分析的理论方法,我认为这对维持工程师是最合适的。 这位工程师不需要在日志出现时立即对其进行分析,而是专注于对复杂问题的深入分析。 在第二部分中,我将展示一个复杂的模板可以涵盖许多搜索场景&…

java 面试指南_Java面试参考指南–第1部分

java 面试指南JAVA面向对象的概念 Java in基于面向对象的概念,它允许更高级别的抽象以实际方式解决任何问题。 面向对象的方法将实际对象中的问题解决方案概念化,更易于在整个应用程序中重用。 例如椅子,风扇,狗,电脑…

创建一个安全的Spring REST API

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 “如果有用,它将被修改。” 这些智慧之言来自我的QA老师,他们…

java并发编程十 原子累加器和Unsafe

文章目录 原子累加器cas 锁原理之伪共享 UnsafeUnsafe CAS 操作 原子累加器 累加器性能比较 private static <T> void demo(Supplier<T> adderSupplier, Consumer<T> action) {T adder adderSupplier.get();long start System.nanoTime();List<Thread…

具有ELK的APIGEE API网关日志管理(Elastic Search,Logstash和Kibana)

在本文中&#xff0c;我们将看到如何使用 Elastic Search &#xff0c; Logstash 和 Kibana 管理APIGEE API网关生成的日志 。 下图突出显示了日志数据如何流经ELK堆栈以进行数据可视化和监视。 作为API网关的一部分&#xff0c;我们将使用MessageLogging策略在代理流&#xf…

java 80_【JavaWeb】80:js基础详解

今天是刘小爱自学Java的第80天。感谢你的观看&#xff0c;谢谢你。话不多说&#xff0c;开始今天的学习&#xff1a;JavaScript是一门编程语言&#xff0c;但凡是编程语言&#xff0c;其在基本语法上都是大同小异的。我们学了Java&#xff0c;那么再学习其它语言时&#xff0c;…

php manager iis 8,PHPManager2下载

PHP Manager 2.x 理论支持win10,win8,win7,Windows Server2008,Windows Server2012,Windows Server2012R2,Windows Server2016,,Windows Server2019与其对应的IIS版本.--PHP Manager 2.4 for IIS10,IIS8,IIS7 下载简单但功能强大具有独特功能的工具&#xff0c;可以处理所有细节…

企业知识库:从信息管理到知识创新的转变

在当今这个信息爆炸的时代&#xff0c;企业知识库的建设已经成为了企业持续发展的重要基石。从传统的信息管理到现代的知识创新&#xff0c;企业知识库的角色和功能也在不断地演变和升级。本文将探讨企业知识库的发展历程&#xff0c;以及如何实现从信息管理到知识创新的转变。…

php封装的数据库操作文件夹,PHP中对数据库操作的封装_php

现在我们把其封装在dbfz.inc中&#xff0c;其设计如下&#xff1a;$#60;?class dbInterface{ var $dbID1; //用于确定当前操作的数据库&#xff0c;当dbID为1代表mysql,当为 2代表 SQL Server&#xff0c;为3时为ODBC或其它。var $dbHost; //数据库所在主机域名var $dbUsernam…

Spring框架架构

这是Spring Framework Architecture的概述。 了解Spring Framework的各个组成部分如何组织以及如何相互联系。 如果您想了解什么是Spring框架及其功能&#xff0c;请阅读Spring框架简介 。 总览 Spring是一个模块化框架 。 它不是作为一个软件包或多个模块捆绑在一起的。 各种…

php中n12br,PHP常见字符串操作函数与用法总结

一、字符串的格式化1、字符串的格式化trim()函数可以去除字符串的开始位置和结束位置的空格&#xff0c;并将结果字符串返回&#xff0c;默认情况下去除的字符是换行符和回车符(\n和\r),水平和垂直制表符(\t和X0B)ltrim()函数只从字符的开始处(左边)去除空格rtrim()函数只从函数…