编译安装Python3

1、源码安装

1、安装依赖软件包
yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel  sqlite-devel readline-devel libffi-devel # python3.7版本安装
2、下载
curl -o python3.6.5.tgz https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
// 或者
wget  https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
3、解压安装
tar -xf Python-3.6.5.tgz
cd Python-3.6.5/

进入目录后,执行下面的命令

修改文件 Python-3.6.5/Modules/Setup.dist, 去掉如下几行的注释 :

readline readline.c -lreadline -ltermcap
​
SSL=/usr/local/ssl
_ssl _ssl.c \-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \-L$(SSL)/lib -lssl -lcrypto

或者在 shell 命令提示符下执行如下命令:

sed -ri 's/^#readline/readline/' Modules/Setup.dist
sed -ri 's/^#(SSL=)/\1/' Modules/Setup.dist
sed -ri 's/^#(_ssl)/\1/' Modules/Setup.dist 
sed -ri 's/^#([\t]*-DUSE)/\1/' Modules/Setup.dist 
sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/' Modules/Setup.dist

开始编译安装

./configure --enable-shared --prefix=/usr/local/python3
make -j 2 && make install

--enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi 连接Apache与python时需要。

4、配置共享库文件

为所有用户设置共享库目录

用 vim 编辑器打开配置文件 /etc/profile.d/python3.sh

vim /etc/profile.d/python3.sh

在文件末尾写上如下内容:

# python3.6 共享库目录
export PATH=$PATH:/usr/local/python3/bin

编辑文件 /etc/ld.so.conf.d/python3.conf,并且添加如下内容:

/usr/local/python3/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

ldconfig

执行如下命令,使环境变量生效

source /etc/profile.d/python3.sh
5、测试python3
$ python3
Python 3.6.3 (default, Dec 17 2017, 04:11:01)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('qf')
qf
>>> exit()

输入 exit() 即可退出 python3

6、测试 pip3

一般情况下你不需要执行下面的安装命令。

[root@newrain ~]# pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

假如上面显示的含有 python3.6 就没问题了,说名 pip3 安装的模块会安装到上面显示的目录下

2、 配置使用国内源安装第三方模块

1、创建配置文件

配置 pip3 使用国内源

mkdir ~/.pip
vi ~/.pip/pip.conf
# Windows 下使用 pip.ini
(1):在windows文件管理器中,输入 %APPDATA%
(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件

写入如下内容:

[global]
timeout = 6000
index-url=https://mirrors.aliyun.com/pypi/simple

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

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

相关文章

2024年小学生古诗文大会备考:吃透历年真题和知识点(持续)

根据往年的安排,2024年小学生古诗文大会预计这个月就将启动。该如何备考2024年小学生古诗文大会呢?根据往期的经验,只要吃透这些真题和背后的知识点,通过上海小学生古诗文大会的初选(初赛)一点问题都没有。…

数据库SQL语言实战(八)

目录 练习题 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九 题目十 练习题 题目一 找出年龄小于20岁且是“物理学院”的学生的学号、姓名、院系名称,按学号排序 create or replace view test6_01 as select S.sid,S.name,S.dname fr…

Myql 数据库采用RAID存储带来电池充放电问题原因以及处理方式

一. 背景 Mysql作为数据库, 在某些特定情况下会采用RAID(冗余磁盘阵列)进行存储. 以保证数据库的性能以及可靠性. 1.1. RAID种类 RAID(冗余磁盘阵列,Redundant Array of Independent Disks)是一种用于数据存储的技术…

浅析Free RTOS中Queue的应用

目录 概述 1 认识Queue 1.1 Queue定义 1.2 FreeRTOS中的Queue 1.3 Queue状态 1.4 Queue内容 1.5 发送和接收Message 1.5.1 发送message 1.5.2 接收Message 2 Queue的特性 2.1 数据存储 2.2 可被多任务存取 2.3 读Queue时阻塞 2.4 写Queue时阻塞 3 使用Queue 3.1…

怎么把图片上的字去掉

将图片上的字去掉通常需要使用图像编辑软件或在线工具。以下是一些常用的方法和步骤: 使用Adobe Photoshop: 打开Photoshop,导入需要编辑的图片。 选择“橡皮擦工具”或“克隆图章工具”。 如果使用“橡皮擦工具”,调整橡皮擦的…

YOLOv9改进策略 | 低照度图像篇 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络,CPA-Enhancer通过引入链式思考提示机制&am…

【提示学习论文】TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model

TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model(CVPR2024) 基于文本的类感知提示调优的VLMKgCoOp为baseline,进行改进,把 w c l i p w_{clip} wclip​进行投影,然后与Learnable prompts进行…

树莓派|角速度和加速度传感器

角速度传感器和加速度传感器是常见的惯性传感器,常用于测量物体的旋转和线性运动。 角速度传感器(Gyroscope)用于测量物体绕三个轴(X、Y、Z)的旋转速度或角速度。它可以提供关于物体在空间中的旋转方向和角度变化的信…

时光知识付费系统,如何制定适合自己的课程?该如何做?

在线教育平台的网课非常多,而且课程之间的相似度非常高,不同是教的老师不同。很多人在制定课程的时候,通常都是被广告吸引的,之后发现课程不是自己想要的,并不适合自己。 想要制定适合自己的课程,首先要清楚…

计算机视觉与深度学习实战:以Python为工具,基于特征匹配的英文印刷字符识别

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:计算机视觉与深度学习实战-以MATLAB和Python为工具_基于特征匹配的英文印刷字符识别_项目开发案例教程.pdf 一、引言 随着人工智能技术的飞速发展,计…

用爬虫解决问题

使用爬虫解决问题是一个常见的技术手段,特别是在需要自动化获取和处理大量网页数据的情况下。以下是一个详细的步骤说明,包括如何使用 Python 和常用的爬虫库(如 requests 和 BeautifulSoup)来构建一个简单的爬虫,解决…

matlab二次插值函数 interp2

在MATLAB中,interp2函数用于执行二维插值操作。该函数可以接受多种不同的插值方法,其中包括linear(线性插值)和nearest(最临近插值)。这两种插值方法的插值结果存在明显的差异。 linear(线性插值…

引用存储复制属性

当执行 this.tableDataSim.push(this.simForm) 时,将 this.simForm 对象添加到 this.tableDataSim 数组中。如果 this.simForm 是一个对象,并且 this.tableDataSim 数组中之前的对象是通过引用方式存储的,那么之前的对象会被改变,…

使用 Python 和机器学习预测股票涨跌幅

使用 Tushare API 获取深圳股市历史数据 引言 这篇文章将会演示如何使用 Tushare Pro API 获取深圳股市的历史交易数据,并将数据保存到CSV文件中。Tushare 是一款提供实时和历史金融市场的数据服务,支持多种语言,具有丰富的数据源和强大的功…

PXI/PXIe规格1553B总线测试模块

面向GJB5186测试专门开发的1553B总线适配卡,支持4Mbps和1Mbps总线速率。该产品提供2个双冗余1553B通道、1个测试专用通道、2个线缆测试通道。新一代的TM53x板卡除了支持耦合方式可编程、总线信号幅值可编程、共模电压注入、总线信号波形采集等功能外,又新…

Python专题:十三、日期和时间(2)

datetime 模块 today()函数 date类型 year month day

二分法的时间复杂度是logN

对数函数: (a>0, a≠1, x>0) 当αe时,记为yln x 当α10时,记为ylg x 当α2时,记为ylog x 其中x是自变量,函数的定义域是(0,∞),…

【Flask框架】

6.Flask轻量型框架 6.1Flask简介 python提供的框架中已经写好了一个内置的服务器,服务器中的回应response行和头已经写好,我们只需要自己写显示在客户端,的主体body部分。 ---------------------------------------------------------- Fla…

Blob数据类型

Blob(Binary Large Object)是一种二进制大对象的数据类型,用于存储大量的二进制数据,比如图片、视频、音频等。Blob对象通常用于处理从网络上获取的数据或者在浏览器中生成的数据,例如通过用户上传的文件、从服务器下载…

Android Studio无法使用Google翻译问题记录

背景 其实关于Google翻译不能用的问题已经出现很久了,之前Google关掉了很多国内的一些Google服务,但是Google翻译还是能用的,直到不知什么时候起,Google翻译也不能用呢。 每次换电脑安装完AS后第一件事就是下载插件 Settings-Pl…