在 CentOS 安装 Python3.7 (没有弯路)

news2024/9/28 6:05:25

在这里插入图片描述

下载Python源码包

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

安装前准备

安装依赖组件

yum -y install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel xz-devel

解压安装

解压到/usr/local/src目录

$ tar zvxf Python-3.7.12.tgz -C /usr/local/src
$ cd /usr/local/src/Python-3.7.12

编译前配置

$ ./configure prefix=/usr/local/python3 --enable-shared

编译构建

$ make -j8

安装Python

$ make install

清理编译产出的中间文件

$ make clean

链接构建产出的Python可执行文件到/usr/local/bin目录

$ ln -s /usr/local/python3/bin/python3 /usr/local/bin/python

链接构建产出的pip3可执行文件到/usr/local/bin目录

$ ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip

链接构建产出的Python动态库

$ ln -s /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/lib/libpython3.7m.so.1.0

配置动态库

$ ldconfig

检查

检查Python版本是否安装成功

python --version

Python 3.7.12 # 正常输出,表示安装成功在这里插入图片描述

注:

  • 链接到/usr/local/bin/目录不会影响系统软件(比如yum)的使用,因为 yum 工具指定的Python路径是/usr/bin/python

  • 一般情况下,PATH配置是先/usr/local/bin再/usr/bin

  • 检查python -v输出结果是否为Python 3.7.12版本,如果不是该版本,可能影响后续依赖安装和服务运行。

pypi下载源配置

pip默认是到pypi官方源下载第三方依赖包,下载速度可能会比较慢,可以考虑调整为腾讯云的pypi下载源,调整方式:

mkdir ~/.pip/
echo "extra-index-url = https://mirrors.cloud.tencent.com/pypi/simple" >> ~/.pip/pip.conf

一键安装脚本

以下脚本内容是上面的步骤集合,省去了复制粘贴的重复动作。

  • 创建文件 install_py37.sh,写入以下 shell 脚本

  • 赋予执行权限,chmox +x install_py37.sh

  • 执行脚本,./install_py37.sh

#!/bin/env bash
## 下载 Python 源码,如果已下载源码在脚本当前目录下,可注释跳过下载步骤
wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz

## 安装编译依赖组件
yum -y install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel xz-devel

## 解压安装
# 解压到/usr/local/src目录
tar zvxf Python-3.7.12.tgz -C /usr/local/src
cd /usr/local/src/Python-3.7.12
# 编译前配置
./configure prefix=/usr/local/python3 --enable-shared
# 编译构建
make -j8
# 安装Python
make install
# 清理编译产出的中间文件
make clean
# 链接构建产出的Python可执行文件到/usr/local/bin目录
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python
# 链接构建产出的pip3可执行文件到/usr/local/bin目录
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip
# 链接构建产出的Python动态库
ln -s /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/lib/libpython3.7m.so.1.0
# 配置动态库
ldconfig

## 检查Python版本是否安装成功
echo -e "\033[1;42;37m[$(date "+%Y/%m/%d %H:%M:%S")] [Check]: 检查Python版本\033[0m"
python --version
echo -e "\033[1;42;37m[$(date "+%Y/%m/%d %H:%M:%S")] [Check]: 检查Python版本\033[0m"

## pypi下载源配置
mkdir ~/.pip/
echo "extra-index-url = https://mirrors.cloud.tencent.com/pypi/simple" >> ~/.pip/pip.conf

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

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

相关文章

前海石公园的停车点探寻

前海石公园是真的很美,很多看海人,很多钓鱼佬,很多抓螃蟹的人,很多挖沙子的人,很多拍照的人,尤其是没有大太阳的时间段或每天傍晚或每个放假的时候人气超高,故前海石公园停车真的很紧张。由于前…

INTO:Web3世界的“价值引力场”

在Web3的宇宙中,一股强大的引力正在重塑整个数字世界的格局。这股引力,来自一个名为INTO的“超级连接器”。作为Web3社交领域的先锋,INTO正在用一种前所未有的方式重构整个产业链的价值体系。它不再满足于单一领域的创新,而是大胆…

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…

1panel申请https/ssl证书自动续期

参考教程 https://hin.cool/posts/sslfor1panel.html #Acme 账户 #1panel.腾讯云dns账号 这里有一步不需要参考,腾讯云dns账号,就是子帐号授权 直接控制台搜索 访问管理 创建用户 授权搜索dns,选择第一个 点击用户名,去掉AdministratorAccess权限 5.点击api密钥生成即可…

python绘制多个wav文件的基频曲线图

任务描述 需要在一个图中绘制多个wav文件的基频图,具体一点,绘制三种不正常的基频曲线,和一种正常的基频曲线进行对比,并且将正常的基频曲线的范围画出。 代码 import pyworld as pw import librosa import numpy as npdef extr…

微调大模型(Finetuning Large Language Models)—Data_preparation(四)

1. 数据的质量 数据准备的步骤: 什么是tokenizing? 其实就是将文本数据转换为代表文本的数字,一般是基于字符出现的频率。需要注意的,编码和解码的tokenizer需保持一致,一般训练的模型有自己专属匹配的tokenizer。 …

实习结帖(flask加上AIGC实现设计符合OpenAPI要求的OpenAPI Schema,让AIGC运行时可以调用api,协助公司门后迁移新后端等)

终于,笔者的实习生活也要告一段落了,最后的几天都在忙着和公司做AIGC的项目,在搞api的设计以及公司门户网站的迁移。 牛马搬运工(牛马了3天) 先说这个门户网站的迁移,我原本以为只是换个后端(若…

新版本Android Studio如何新建Java code工程

新版本Android Studio主推Kotlin,很多同学以为无法新建Java工程了,其实是可以的,如果要新建Java代码的Android工程,在New Project的时候需要选择Empty Views Activity,如图所示,gradle也建议选为build.grad…

RP2040 C SDK GPIO和IRQ 唤醒功能使用

RP2040 C SDK GPIO和中断功能使用 SIO介绍 手册27页: The Single-cycle IO block (SIO) contains several peripherals that require low-latency, deterministic access from the processors. It is accessed via each processor’s IOPORT: this is an auxiliary…

MyBatis——Plus

MyBatis——Plus怎么知道他是访问哪张表

48 旋转图像

解题思路: \qquad 这道题同样需要用模拟解决,原地算法要求空间复杂度尽量小,最好为 O ( 1 ) O(1) O(1)。模拟的关键是找到旋转的内在规律,即旋转前后的位置坐标的变化规律。 \qquad 正方形矩阵类似洋葱,可以由不同大小…

计算机毕业设计 在线问诊系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

又一条地铁无人线开通!霞智科技智能清洁机器人正式“上岗”

2024年9月26日12时,又一条无人线开通运营,这是陕西省首条全自动无人驾驶地铁线路。该线路作为北跨战略的先行工程,是连接主城区与渭北地区的轨道交通快线,对优化城市总体空间布局、推动区域融合发展、促进沿线产业升级具有十分重要…

电脑上数据丢了怎么找回来 Win系统误删文件如何恢复

无论是在工作中,还是生活中,电脑都是不可缺少的重要工具,尤其是在工作中,电脑不仅可以高效的完成工作,还可以存储工作中的重要资料。不过在使用电脑的时候,也会遇到数据丢失的情况。针对这一问题&#xff0…

渗透测试--文件上传常用绕过方式

文件上传常用绕过方式 1.前端代码,限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改,抓取上传数据包,并且修改 Content-Type 3.服务端检测(目录路径检测) 对目…

在Java中使用GeoTools解析POI数据并存储到PostGIS实战

目录 前言 一、POI数据相关介绍 1、原始数据说明 2、空间数据库表设计 二、POI数据存储的设计与实现 1、对应的数据模型对象的设计 2、属性表数据和空间信息的读取 3、实际运行结果 三、总结 前言 POI点,全称为Point of Interest(兴趣点&#xf…

大数据技术:Hadoop、Spark与Flink的框架演进

大数据技术,特别是Hadoop、Spark与Flink的框架演进,是过去二十年中信息技术领域最引人注目的发展之一。这些技术不仅改变了数据处理的方式,而且还推动了对数据驱动决策和智能化的需求。在大数据处理领域,选择合适的大数据平台是确…

git 清除二进制文件的 changes 状态

问题:某个分支上修改了二进制文件,导致 changes 一直存在,切换到主分支也仍然存在,点击 Discard 也没用 使用 git reset --hard 还原到初始状态,也不行,不过输出结果会给出错误信息 Encountered 7 file(s) …

raise Exception(“IPAdapter model not found.“)

IPAdapter模型文件太多了,而节点IPAdapter Unified Loader是通过函数(get_ipadapter_file与get_clipvision_file)预设来加载模型文件,当发生错误“IPAdapter model not found.“时并不指明模型文件名,导致想要有针对性…

C语言 | Leetcode C语言题解之第438题找到字符串中所有字母异位词

题目: 题解: /*** Note: The returned array must be malloced, assume caller calls free().*/ /* *int strCmpn:比较滑动窗口和字符串的相同值 char * s:字符串s,滑动窗口的位置 char * p:字符串p&#…